
/* A Bison parser, made by GNU Bison 2.4.1.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C
   
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.
   
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.
   
   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Bison version.  */
#define YYBISON_VERSION "2.4.1"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Push parsers.  */
#define YYPUSH 0

/* Pull parsers.  */
#define YYPULL 1

/* Using locations.  */
#define YYLSP_NEEDED 0

/* Substitute the variable and function names.  */
#define yyparse         MYSQLparse
#define yylex           MYSQLlex
#define yyerror         MYSQLerror
#define yylval          MYSQLlval
#define yychar          MYSQLchar
#define yydebug         MYSQLdebug
#define yynerrs         MYSQLnerrs


/* Copy the first part of user declarations.  */

/* Line 189 of yacc.c  */
#line 25 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"

#define YYLIP (& thd->m_parser_state->m_lip)
#define YYPS (& thd->m_parser_state->m_yacc)

#define MYSQL_YACC
#define YYINITDEPTH 100
#define YYMAXDEPTH 3200                        /* Because of 64K stack */
#define Lex (thd->lex)

#define Select Lex->current_select
#include "sql_priv.h"
#include "unireg.h"                    // REQUIRED: for other includes
#include "sql_parse.h"                        /* comp_*_creator */
#include "sql_table.h"                        /* primary_key_name */
#include "sql_partition.h"  /* mem_alloc_error, partition_info, HASH_PARTITION */
#include "sql_acl.h"                          /* *_ACL */
#include "password.h"       /* my_make_scrambled_password_323, my_make_scrambled_password */
#include "sql_class.h"      /* Key_part_spec, enum_filetype, Diag_condition_item_name */
#include "slave.h"
#include "lex_symbol.h"
#include "item_create.h"
#include "sp_head.h"
#include "sp_pcontext.h"
#include "sp_rcontext.h"
#include "sp.h"
#include "sql_alter.h"                         // Alter_table*_statement
#include "sql_truncate.h"                      // Truncate_statement
#include "sql_admin.h"                         // Analyze/Check..._table_stmt
#include "sql_partition_admin.h"               // Alter_table_*_partition_stmt
#include "sql_signal.h"
#include "event_parse_data.h"
#include "create_options.h"
#include <myisam.h>
#include <myisammrg.h>
#include "keycaches.h"
#include "set_var.h"

/* this is to get the bison compilation windows warnings out */
#ifdef _MSC_VER
/* warning C4065: switch statement contains 'default' but no 'case' labels */
#pragma warning (disable : 4065)
#endif

int yylex(void *yylval, void *yythd);

#define yyoverflow(A,B,C,D,E,F)               \
  {                                           \
    ulong val= *(F);                          \
    if (my_yyoverflow((B), (D), &val))        \
    {                                         \
      yyerror(current_thd, (char*) (A));      \
      return 2;                               \
    }                                         \
    else                                      \
    {                                         \
      *(F)= (YYSIZE_T)val;                    \
    }                                         \
  }

#define MYSQL_YYABORT                         \
  do                                          \
  {                                           \
    LEX::cleanup_lex_after_parse_error(thd);  \
    YYABORT;                                  \
  } while (0)

#define MYSQL_YYABORT_UNLESS(A)         \
  if (!(A))                             \
  {                                     \
    my_parse_error(ER(ER_SYNTAX_ERROR));\
    MYSQL_YYABORT;                      \
  }

/*
  Work around for broken code generated by bison 1.875.

  The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok.
  With bison 1.875 however, the generated code contains:
<pre>
  yyerrlab1:
  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
    __attribute__ ((__unused__))
  #endif
</pre>
  This usage of __attribute__ is illegal, so we remove it.
  See the following references for details:
  http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
*/

#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
#undef __attribute__
#define __attribute__(X)
#endif


#ifndef DBUG_OFF
#define YYDEBUG 1
#else
#define YYDEBUG 0
#endif

/**
  @brief Push an error message into MySQL error stack with line
  and position information.

  This function provides semantic action implementers with a way
  to push the famous "You have a syntax error near..." error
  message into the error stack, which is normally produced only if
  a parse error is discovered internally by the Bison generated
  parser.
*/

void my_parse_error(const char *s)
{
  THD *thd= current_thd;
  Lex_input_stream *lip= & thd->m_parser_state->m_lip;

  const char *yytext= lip->get_tok_start();
  if (!yytext)
    yytext= "";

  /* Push an error into the error stack */
  ErrConvString err(yytext, strlen(yytext), thd->variables.character_set_client);
  my_printf_error(ER_PARSE_ERROR,  ER(ER_PARSE_ERROR), MYF(0), s,
                  err.ptr(), lip->yylineno);
}

/**
  @brief Bison callback to report a syntax/OOM error

  This function is invoked by the bison-generated parser
  when a syntax error, a parse error or an out-of-memory
  condition occurs. This function is not invoked when the
  parser is requested to abort by semantic action code
  by means of YYABORT or YYACCEPT macros. This is why these
  macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT
  instead).

  The parser will abort immediately after invoking this callback.

  This function is not for use in semantic actions and is internal to
  the parser, as it performs some pre-return cleanup. 
  In semantic actions, please use my_parse_error or my_error to
  push an error into the error stack and MYSQL_YYABORT
  to abort from the parser.
*/

void MYSQLerror(THD *thd, const char *s)
{
  /*
    Restore the original LEX if it was replaced when parsing
    a stored procedure. We must ensure that a parsing error
    does not leave any side effects in the THD.
  */
  LEX::cleanup_lex_after_parse_error(thd);

  /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */
  if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0)
    s= ER(ER_SYNTAX_ERROR);
  my_parse_error(s);
}


#ifndef DBUG_OFF
void turn_parser_debug_on()
{
  /*
     MYSQLdebug is in sql/sql_yacc.cc, in bison generated code.
     Turning this option on is **VERY** verbose, and should be
     used when investigating a syntax error problem only.

     The syntax to run with bison traces is as follows :
     - Starting a server manually :
       mysqld --debug-dbug="d,parser_debug" ...
     - Running a test :
       mysql-test-run.pl --mysqld="--debug-dbug=d,parser_debug" ...

     The result will be in the process stderr (var/log/master.err)
   */

  extern int yydebug;
  yydebug= 1;
}
#endif

static bool is_native_function(THD *thd, const LEX_STRING *name)
{
  if (find_native_function_builder(thd, *name))
    return true;

  if (is_lex_native_function(name))
    return true;

  return false;
}


/**
  Helper action for a case statement (entering the CASE).
  This helper is used for both 'simple' and 'searched' cases.
  This helper, with the other case_stmt_action_..., is executed when
  the following SQL code is parsed:
<pre>
CREATE PROCEDURE proc_19194_simple(i int)
BEGIN
  DECLARE str CHAR(10);

  CASE i
    WHEN 1 THEN SET str="1";
    WHEN 2 THEN SET str="2";
    WHEN 3 THEN SET str="3";
    ELSE SET str="unknown";
  END CASE;

  SELECT str;
END
</pre>
  The actions are used to generate the following code:
<pre>
SHOW PROCEDURE CODE proc_19194_simple;
Pos     Instruction
0       set str@1 NULL
1       set_case_expr (12) 0 i@0
2       jump_if_not 5(12) (case_expr@0 = 1)
3       set str@1 _latin1'1'
4       jump 12
5       jump_if_not 8(12) (case_expr@0 = 2)
6       set str@1 _latin1'2'
7       jump 12
8       jump_if_not 11(12) (case_expr@0 = 3)
9       set str@1 _latin1'3'
10      jump 12
11      set str@1 _latin1'unknown'
12      stmt 0 "SELECT str"
</pre>

  @param lex the parser lex context
*/

void case_stmt_action_case(LEX *lex)
{
  lex->sphead->new_cont_backpatch(NULL);

  /*
    BACKPATCH: Creating target label for the jump to
    "case_stmt_action_end_case"
    (Instruction 12 in the example)
  */

  lex->spcont->push_label((char *)"", lex->sphead->instructions());
}

/**
  Helper action for a case expression statement (the expr in 'CASE expr').
  This helper is used for 'searched' cases only.
  @param lex the parser lex context
  @param expr the parsed expression
  @return 0 on success
*/

int case_stmt_action_expr(LEX *lex, Item* expr)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *parsing_ctx= lex->spcont;
  int case_expr_id= parsing_ctx->register_case_expr();
  sp_instr_set_case_expr *i;

  if (parsing_ctx->push_case_expr_id(case_expr_id))
    return 1;

  i= new sp_instr_set_case_expr(sp->instructions(),
                                parsing_ctx, case_expr_id, expr, lex);

  sp->add_cont_backpatch(i);
  return sp->add_instr(i);
}

/**
  Helper action for a case when condition.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param when the parsed expression for the WHEN clause
  @param simple true for simple cases, false for searched cases
*/

int case_stmt_action_when(LEX *lex, Item *when, bool simple)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump_if_not *i;
  Item_case_expr *var;
  Item *expr;

  if (simple)
  {
    var= new Item_case_expr(ctx->get_current_case_expr_id());

#ifndef DBUG_OFF
    if (var)
    {
      var->m_sp= sp;
    }
#endif

    expr= new Item_func_eq(var, when);
    i= new sp_instr_jump_if_not(ip, ctx, expr, lex);
  }
  else
    i= new sp_instr_jump_if_not(ip, ctx, when, lex);

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  return !test(i) ||
         sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
         sp->add_cont_backpatch(i) ||
         sp->add_instr(i);
}

/**
  Helper action for a case then statements.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
*/

int case_stmt_action_then(LEX *lex)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump *i = new sp_instr_jump(ip, ctx);
  if (!test(i) || sp->add_instr(i))
    return 1;

  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->backpatch(ctx->pop_label());

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */

  return sp->push_backpatch(i, ctx->last_label());
}

/**
  Helper action for an end case.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_end_case(LEX *lex, bool simple)
{
  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */
  lex->sphead->backpatch(lex->spcont->pop_label());

  if (simple)
    lex->spcont->pop_case_expr_id();

  lex->sphead->do_cont_backpatch();
}


static bool
find_sys_var_null_base(THD *thd, struct sys_var_with_base *tmp)
{
  tmp->var= find_sys_var(thd, tmp->base_name.str, tmp->base_name.length);

  if (tmp->var == NULL)
    my_error(ER_UNKNOWN_SYSTEM_VARIABLE, MYF(0), tmp->base_name.str);
  else
    tmp->base_name= null_lex_str;

  return thd->is_error();
}


/**
  Helper action for a SET statement.
  Used to push a system variable into the assignment list.

  @param thd      the current thread
  @param tmp      the system variable with base name
  @param var_type the scope of the variable
  @param val      the value being assigned to the variable

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_system_variable(THD *thd, struct sys_var_with_base *tmp,
                    enum enum_var_type var_type, Item *val)
{
  set_var *var;
  LEX *lex= thd->lex;

  /* No AUTOCOMMIT from a stored function or trigger. */
  if (lex->spcont && tmp->var == Sys_autocommit_ptr)
    lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;

  if (! (var= new set_var(var_type, tmp->var, &tmp->base_name, val)))
    return TRUE;

  return lex->var_list.push_back(var);
}


/**
  Helper action for a SET statement.
  Used to push a SP local variable into the assignment list.

  @param thd      the current thread
  @param var_type the SP local variable
  @param val      the value being assigned to the variable

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_local_variable(THD *thd, sp_variable_t *spv, Item *val)
{
  Item *it;
  LEX *lex= thd->lex;
  sp_instr_set *sp_set;

  if (val)
    it= val;
  else if (spv->dflt)
    it= spv->dflt;
  else
  {
    it= new (thd->mem_root) Item_null();
    if (it == NULL)
      return TRUE;
  }

  sp_set= new sp_instr_set(lex->sphead->instructions(), lex->spcont,
                           spv->offset, it, spv->type, lex, TRUE);

  return (sp_set == NULL || lex->sphead->add_instr(sp_set));
}


/**
  Helper action for a SET statement.
  Used to SET a field of NEW row.

  @param thd      the current thread
  @param name     the field name
  @param val      the value being assigned to the row

  @return TRUE if error, FALSE otherwise.
*/

static bool
set_trigger_new_row(THD *thd, LEX_STRING *name, Item *val)
{
  LEX *lex= thd->lex;
  Item_trigger_field *trg_fld;
  sp_instr_set_trigger_field *sp_fld;

  /* QQ: Shouldn't this be field's default value ? */
  if (! val)
    val= new Item_null();

  DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
              (lex->trg_chistics.event == TRG_EVENT_INSERT ||
               lex->trg_chistics.event == TRG_EVENT_UPDATE));

  trg_fld= new (thd->mem_root)
            Item_trigger_field(lex->current_context(),
                               Item_trigger_field::NEW_ROW,
                               name->str, UPDATE_ACL, FALSE);

  if (trg_fld == NULL)
    return TRUE;

  sp_fld= new sp_instr_set_trigger_field(lex->sphead->instructions(),
                                         lex->spcont, trg_fld, val, lex);

  if (sp_fld == NULL)
    return TRUE;

  /*
    Let us add this item to list of all Item_trigger_field
    objects in trigger.
  */
  lex->trg_table_fields.link_in_list(trg_fld, &trg_fld->next_trg_field);

  return lex->sphead->add_instr(sp_fld);
}


/**
  Helper to resolve the SQL:2003 Syntax exception 1) in <in predicate>.
  See SQL:2003, Part 2, section 8.4 <in predicate>, Note 184, page 383.
  This function returns the proper item for the SQL expression
  <code>left [NOT] IN ( expr )</code>
  @param thd the current thread
  @param left the in predicand
  @param equal true for IN predicates, false for NOT IN predicates
  @param expr first and only expression of the in value list
  @return an expression representing the IN predicate.
*/
Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
                                       Item *expr)
{
  /*
    Relevant references for this issue:
    - SQL:2003, Part 2, section 8.4 <in predicate>, page 383,
    - SQL:2003, Part 2, section 7.2 <row value expression>, page 296,
    - SQL:2003, Part 2, section 6.3 <value expression primary>, page 174,
    - SQL:2003, Part 2, section 7.15 <subquery>, page 370,
    - SQL:2003 Feature F561, "Full value expressions".

    The exception in SQL:2003 Note 184 means:
    Item_singlerow_subselect, which corresponds to a <scalar subquery>,
    should be re-interpreted as an Item_in_subselect, which corresponds
    to a <table subquery> when used inside an <in predicate>.

    Our reading of Note 184 is reccursive, so that all:
    - IN (( <subquery> ))
    - IN ((( <subquery> )))
    - IN '('^N <subquery> ')'^N
    - etc
    should be interpreted as a <table subquery>, no matter how deep in the
    expression the <subquery> is.
  */

  Item *result;

  DBUG_ENTER("handle_sql2003_note184_exception");

  if (expr->type() == Item::SUBSELECT_ITEM)
  {
    Item_subselect *expr2 = (Item_subselect*) expr;

    if (expr2->substype() == Item_subselect::SINGLEROW_SUBS)
    {
      Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2;
      st_select_lex *subselect;

      /*
        Implement the mandated change, by altering the semantic tree:
          left IN Item_singlerow_subselect(subselect)
        is modified to
          left IN (subselect)
        which is represented as
          Item_in_subselect(left, subselect)
      */
      subselect= expr3->invalidate_and_restore_select_lex();
      result= new (thd->mem_root) Item_in_subselect(left, subselect);

      if (! equal)
        result = negate_expression(thd, result);

      DBUG_RETURN(result);
    }
  }

  if (equal)
    result= new (thd->mem_root) Item_func_eq(left, expr);
  else
    result= new (thd->mem_root) Item_func_ne(left, expr);

  DBUG_RETURN(result);
}

/**
   @brief Creates a new SELECT_LEX for a UNION branch.

   Sets up and initializes a SELECT_LEX structure for a query once the parser
   discovers a UNION token. The current SELECT_LEX is pushed on the stack and
   the new SELECT_LEX becomes the current one.

   @param lex The parser state.

   @param is_union_distinct True if the union preceding the new select statement
   uses UNION DISTINCT.

   @param is_top_level This should be @c TRUE if the newly created SELECT_LEX
   is a non-nested statement.

   @return <code>false</code> if successful, <code>true</code> if an error was
   reported. In the latter case parsing should stop.
 */
bool add_select_to_union_list(LEX *lex, bool is_union_distinct, 
                              bool is_top_level)
{
  /* 
     Only the last SELECT can have INTO. Since the grammar won't allow INTO in
     a nested SELECT, we make this check only when creating a top-level SELECT.
  */
  if (is_top_level && lex->result)
  {
    my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
    return TRUE;
  }
  if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
  {
    my_parse_error(ER(ER_SYNTAX_ERROR));
    return TRUE;
  }
  /* This counter shouldn't be incremented for UNION parts */
  lex->nest_level--;
  if (mysql_new_select(lex, 0))
    return TRUE;
  mysql_init_select(lex);
  lex->current_select->linkage=UNION_TYPE;
  if (is_union_distinct) /* UNION DISTINCT - remember position */
    lex->current_select->master_unit()->union_distinct=
      lex->current_select;
  return FALSE;
}

/**
   @brief Initializes a SELECT_LEX for a query within parentheses (aka
   braces).

   @return false if successful, true if an error was reported. In the latter
   case parsing should stop.
 */
bool setup_select_in_parentheses(LEX *lex) 
{
  SELECT_LEX * sel= lex->current_select;
  if (sel->set_braces(1))
  {
    my_parse_error(ER(ER_SYNTAX_ERROR));
    return TRUE;
  }
  if (sel->linkage == UNION_TYPE &&
      !sel->master_unit()->first_select()->braces &&
      sel->master_unit()->first_select()->linkage ==
      UNION_TYPE)
  {
    my_parse_error(ER(ER_SYNTAX_ERROR));
    return TRUE;
  }
  if (sel->linkage == UNION_TYPE &&
      sel->olap != UNSPECIFIED_OLAP_TYPE &&
      sel->master_unit()->fake_select_lex)
  {
    my_error(ER_WRONG_USAGE, MYF(0), "CUBE/ROLLUP", "ORDER BY");
    return TRUE;
  }
  /* select in braces, can't contain global parameters */
  if (sel->master_unit()->fake_select_lex)
    sel->master_unit()->global_parameters=
      sel->master_unit()->fake_select_lex;
  return FALSE;
}

static bool add_create_index_prepare (LEX *lex, Table_ident *table)
{
  lex->sql_command= SQLCOM_CREATE_INDEX;
  if (!lex->current_select->add_table_to_list(lex->thd, table, NULL,
                                              TL_OPTION_UPDATING,
                                              TL_READ_NO_INSERT,
                                              MDL_SHARED_NO_WRITE))
    return TRUE;
  lex->alter_info.reset();
  lex->alter_info.flags= ALTER_ADD_INDEX;
  lex->col_list.empty();
  lex->change= NullS;
  lex->option_list= NULL;
  return FALSE;
}

static bool add_create_index (LEX *lex, Key::Keytype type,
                              const LEX_STRING &name,
                              KEY_CREATE_INFO *info= NULL, bool generated= 0)
{
  Key *key;
  key= new Key(type, name, info ? info : &lex->key_create_info, generated, 
               lex->col_list, lex->option_list);
  if (key == NULL)
    return TRUE;

  lex->alter_info.key_list.push_back(key);
  lex->col_list.empty();
  return FALSE;
}



/* Line 189 of yacc.c  */
#line 783 "/home/buildbot/buildbot/build/mkdist/sql/sql_yacc.cc"

/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

/* Enabling the token table.  */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ABORT_SYM = 258,
     ACCESSIBLE_SYM = 259,
     ACTION = 260,
     ADD = 261,
     ADDDATE_SYM = 262,
     AFTER_SYM = 263,
     AGAINST = 264,
     AGGREGATE_SYM = 265,
     ALGORITHM_SYM = 266,
     ALL = 267,
     ALTER = 268,
     ALWAYS_SYM = 269,
     ANALYZE_SYM = 270,
     AND_AND_SYM = 271,
     AND_SYM = 272,
     ANY_SYM = 273,
     AS = 274,
     ASC = 275,
     ASCII_SYM = 276,
     ASENSITIVE_SYM = 277,
     AT_SYM = 278,
     AUTHORS_SYM = 279,
     AUTOEXTEND_SIZE_SYM = 280,
     AUTO_INC = 281,
     AVG_ROW_LENGTH = 282,
     AVG_SYM = 283,
     BACKUP_SYM = 284,
     BEFORE_SYM = 285,
     BEGIN_SYM = 286,
     BETWEEN_SYM = 287,
     BIGINT = 288,
     BINARY = 289,
     BINLOG_SYM = 290,
     BIN_NUM = 291,
     BIT_AND = 292,
     BIT_OR = 293,
     BIT_SYM = 294,
     BIT_XOR = 295,
     BLOB_SYM = 296,
     BLOCK_SYM = 297,
     BOOLEAN_SYM = 298,
     BOOL_SYM = 299,
     BOTH = 300,
     BTREE_SYM = 301,
     BY = 302,
     BYTE_SYM = 303,
     CACHE_SYM = 304,
     CALL_SYM = 305,
     CASCADE = 306,
     CASCADED = 307,
     CASE_SYM = 308,
     CAST_SYM = 309,
     CATALOG_NAME_SYM = 310,
     CHAIN_SYM = 311,
     CHANGE = 312,
     CHANGED = 313,
     CHARSET = 314,
     CHAR_SYM = 315,
     CHECKPOINT_SYM = 316,
     CHECKSUM_SYM = 317,
     CHECK_SYM = 318,
     CIPHER_SYM = 319,
     CLASS_ORIGIN_SYM = 320,
     CLIENT_SYM = 321,
     CLIENT_STATS_SYM = 322,
     CLOSE_SYM = 323,
     COALESCE = 324,
     CODE_SYM = 325,
     COLLATE_SYM = 326,
     COLLATION_SYM = 327,
     COLUMNS = 328,
     COLUMN_ADD_SYM = 329,
     COLUMN_CREATE_SYM = 330,
     COLUMN_DELETE_SYM = 331,
     COLUMN_EXISTS_SYM = 332,
     COLUMN_GET_SYM = 333,
     COLUMN_LIST_SYM = 334,
     COLUMN_SYM = 335,
     COLUMN_NAME_SYM = 336,
     COMMENT_SYM = 337,
     COMMITTED_SYM = 338,
     COMMIT_SYM = 339,
     COMPACT_SYM = 340,
     COMPLETION_SYM = 341,
     COMPRESSED_SYM = 342,
     CONCURRENT = 343,
     CONDITION_SYM = 344,
     CONNECTION_SYM = 345,
     CONSISTENT_SYM = 346,
     CONSTRAINT = 347,
     CONSTRAINT_CATALOG_SYM = 348,
     CONSTRAINT_NAME_SYM = 349,
     CONSTRAINT_SCHEMA_SYM = 350,
     CONTAINS_SYM = 351,
     CONTEXT_SYM = 352,
     CONTINUE_SYM = 353,
     CONTRIBUTORS_SYM = 354,
     CONVERT_SYM = 355,
     COUNT_SYM = 356,
     CPU_SYM = 357,
     CREATE = 358,
     CROSS = 359,
     CUBE_SYM = 360,
     CURDATE = 361,
     CURRENT_USER = 362,
     CURSOR_SYM = 363,
     CURSOR_NAME_SYM = 364,
     CURTIME = 365,
     DATABASE = 366,
     DATABASES = 367,
     DATAFILE_SYM = 368,
     DATA_SYM = 369,
     DATETIME = 370,
     DATE_ADD_INTERVAL = 371,
     DATE_SUB_INTERVAL = 372,
     DATE_SYM = 373,
     DAY_HOUR_SYM = 374,
     DAY_MICROSECOND_SYM = 375,
     DAY_MINUTE_SYM = 376,
     DAY_SECOND_SYM = 377,
     DAY_SYM = 378,
     DEALLOCATE_SYM = 379,
     DECIMAL_NUM = 380,
     DECIMAL_SYM = 381,
     DECLARE_SYM = 382,
     DEFAULT = 383,
     DEFINER_SYM = 384,
     DELAYED_SYM = 385,
     DELAY_KEY_WRITE_SYM = 386,
     DELETE_SYM = 387,
     DESC = 388,
     DESCRIBE = 389,
     DES_KEY_FILE = 390,
     DETERMINISTIC_SYM = 391,
     DIRECTORY_SYM = 392,
     DISABLE_SYM = 393,
     DISCARD = 394,
     DISK_SYM = 395,
     DISTINCT = 396,
     DIV_SYM = 397,
     DOUBLE_SYM = 398,
     DO_SYM = 399,
     DROP = 400,
     DUAL_SYM = 401,
     DUMPFILE = 402,
     DUPLICATE_SYM = 403,
     DYNAMIC_SYM = 404,
     EACH_SYM = 405,
     ELSE = 406,
     ELSEIF_SYM = 407,
     ENABLE_SYM = 408,
     ENCLOSED = 409,
     END = 410,
     ENDS_SYM = 411,
     END_OF_INPUT = 412,
     ENGINES_SYM = 413,
     ENGINE_SYM = 414,
     ENUM = 415,
     EQ = 416,
     EQUAL_SYM = 417,
     ERROR_SYM = 418,
     ERRORS = 419,
     ESCAPED = 420,
     ESCAPE_SYM = 421,
     EVENTS_SYM = 422,
     EVENT_SYM = 423,
     EVERY_SYM = 424,
     EXAMINED_SYM = 425,
     EXECUTE_SYM = 426,
     EXISTS = 427,
     EXIT_SYM = 428,
     EXPANSION_SYM = 429,
     EXTENDED_SYM = 430,
     EXTENT_SIZE_SYM = 431,
     EXTRACT_SYM = 432,
     FALSE_SYM = 433,
     FAST_SYM = 434,
     FAULTS_SYM = 435,
     FETCH_SYM = 436,
     FILE_SYM = 437,
     FIRST_SYM = 438,
     FIXED_SYM = 439,
     FLOAT_NUM = 440,
     FLOAT_SYM = 441,
     FLUSH_SYM = 442,
     FORCE_SYM = 443,
     FOREIGN = 444,
     FOR_SYM = 445,
     FOUND_SYM = 446,
     FROM = 447,
     FULL = 448,
     FULLTEXT_SYM = 449,
     FUNCTION_SYM = 450,
     GE = 451,
     GENERAL = 452,
     GENERATED_SYM = 453,
     GEOMETRYCOLLECTION = 454,
     GEOMETRY_SYM = 455,
     GET_FORMAT = 456,
     GLOBAL_SYM = 457,
     GRANT = 458,
     GRANTS = 459,
     GROUP_SYM = 460,
     GROUP_CONCAT_SYM = 461,
     GT_SYM = 462,
     HANDLER_SYM = 463,
     HARD_SYM = 464,
     HASH_SYM = 465,
     HAVING = 466,
     HELP_SYM = 467,
     HEX_NUM = 468,
     HEX_STRING = 469,
     HIGH_PRIORITY = 470,
     HOST_SYM = 471,
     HOSTS_SYM = 472,
     HOUR_MICROSECOND_SYM = 473,
     HOUR_MINUTE_SYM = 474,
     HOUR_SECOND_SYM = 475,
     HOUR_SYM = 476,
     IDENT = 477,
     IDENTIFIED_SYM = 478,
     IDENT_QUOTED = 479,
     IF = 480,
     IGNORE_SYM = 481,
     IGNORE_SERVER_IDS_SYM = 482,
     IMPORT = 483,
     INDEXES = 484,
     INDEX_SYM = 485,
     INDEX_STATS_SYM = 486,
     INFILE = 487,
     INITIAL_SIZE_SYM = 488,
     INNER_SYM = 489,
     INOUT_SYM = 490,
     INSENSITIVE_SYM = 491,
     INSERT = 492,
     INSERT_METHOD = 493,
     INSTALL_SYM = 494,
     INTERVAL_SYM = 495,
     INTO = 496,
     INT_SYM = 497,
     INVOKER_SYM = 498,
     IN_SYM = 499,
     IO_SYM = 500,
     IPC_SYM = 501,
     IS = 502,
     ISOLATION = 503,
     ISSUER_SYM = 504,
     ITERATE_SYM = 505,
     JOIN_SYM = 506,
     KEYS = 507,
     KEY_BLOCK_SIZE = 508,
     KEY_SYM = 509,
     KILL_SYM = 510,
     LANGUAGE_SYM = 511,
     LAST_SYM = 512,
     LAST_VALUE = 513,
     LE = 514,
     LEADING = 515,
     LEAVES = 516,
     LEAVE_SYM = 517,
     LEFT = 518,
     LESS_SYM = 519,
     LEVEL_SYM = 520,
     LEX_HOSTNAME = 521,
     LIKE = 522,
     LIMIT = 523,
     LINEAR_SYM = 524,
     LINES = 525,
     LINESTRING = 526,
     LIST_SYM = 527,
     LOAD = 528,
     LOCAL_SYM = 529,
     LOCATOR_SYM = 530,
     LOCKS_SYM = 531,
     LOCK_SYM = 532,
     LOGFILE_SYM = 533,
     LOGS_SYM = 534,
     LONGBLOB = 535,
     LONGTEXT = 536,
     LONG_NUM = 537,
     LONG_SYM = 538,
     LOOP_SYM = 539,
     LOW_PRIORITY = 540,
     LT = 541,
     MASTER_CONNECT_RETRY_SYM = 542,
     MASTER_HOST_SYM = 543,
     MASTER_LOG_FILE_SYM = 544,
     MASTER_LOG_POS_SYM = 545,
     MASTER_PASSWORD_SYM = 546,
     MASTER_PORT_SYM = 547,
     MASTER_SERVER_ID_SYM = 548,
     MASTER_SSL_CAPATH_SYM = 549,
     MASTER_SSL_CA_SYM = 550,
     MASTER_SSL_CERT_SYM = 551,
     MASTER_SSL_CIPHER_SYM = 552,
     MASTER_SSL_KEY_SYM = 553,
     MASTER_SSL_SYM = 554,
     MASTER_SSL_VERIFY_SERVER_CERT_SYM = 555,
     MASTER_SYM = 556,
     MASTER_USER_SYM = 557,
     MASTER_HEARTBEAT_PERIOD_SYM = 558,
     MATCH = 559,
     MAX_CONNECTIONS_PER_HOUR = 560,
     MAX_QUERIES_PER_HOUR = 561,
     MAX_ROWS = 562,
     MAX_SIZE_SYM = 563,
     MAX_SYM = 564,
     MAX_UPDATES_PER_HOUR = 565,
     MAX_USER_CONNECTIONS_SYM = 566,
     MAX_VALUE_SYM = 567,
     MEDIUMBLOB = 568,
     MEDIUMINT = 569,
     MEDIUMTEXT = 570,
     MEDIUM_SYM = 571,
     MEMORY_SYM = 572,
     MERGE_SYM = 573,
     MESSAGE_TEXT_SYM = 574,
     MICROSECOND_SYM = 575,
     MIGRATE_SYM = 576,
     MINUTE_MICROSECOND_SYM = 577,
     MINUTE_SECOND_SYM = 578,
     MINUTE_SYM = 579,
     MIN_ROWS = 580,
     MIN_SYM = 581,
     MODE_SYM = 582,
     MODIFIES_SYM = 583,
     MODIFY_SYM = 584,
     MOD_SYM = 585,
     MONTH_SYM = 586,
     MULTILINESTRING = 587,
     MULTIPOINT = 588,
     MULTIPOLYGON = 589,
     MUTEX_SYM = 590,
     MYSQL_ERRNO_SYM = 591,
     NAMES_SYM = 592,
     NAME_SYM = 593,
     NATIONAL_SYM = 594,
     NATURAL = 595,
     NCHAR_STRING = 596,
     NCHAR_SYM = 597,
     NDBCLUSTER_SYM = 598,
     NE = 599,
     NEG = 600,
     NEW_SYM = 601,
     NEXT_SYM = 602,
     NODEGROUP_SYM = 603,
     NONE_SYM = 604,
     NOT2_SYM = 605,
     NOT_SYM = 606,
     NOW_SYM = 607,
     NO_SYM = 608,
     NO_WAIT_SYM = 609,
     NO_WRITE_TO_BINLOG = 610,
     NULL_SYM = 611,
     NUM = 612,
     NUMERIC_SYM = 613,
     NVARCHAR_SYM = 614,
     OFFSET_SYM = 615,
     OLD_PASSWORD = 616,
     ON = 617,
     ONE_SHOT_SYM = 618,
     ONE_SYM = 619,
     ONLINE_SYM = 620,
     OPEN_SYM = 621,
     OPTIMIZE = 622,
     OPTIONS_SYM = 623,
     OPTION = 624,
     OPTIONALLY = 625,
     OR2_SYM = 626,
     ORDER_SYM = 627,
     OR_OR_SYM = 628,
     OR_SYM = 629,
     OUTER = 630,
     OUTFILE = 631,
     OUT_SYM = 632,
     OWNER_SYM = 633,
     PACK_KEYS_SYM = 634,
     PAGE_SYM = 635,
     PAGE_CHECKSUM_SYM = 636,
     PARAM_MARKER = 637,
     PARSER_SYM = 638,
     PARSE_VCOL_EXPR_SYM = 639,
     PARTIAL = 640,
     PARTITIONING_SYM = 641,
     PARTITIONS_SYM = 642,
     PARTITION_SYM = 643,
     PASSWORD = 644,
     PERSISTENT_SYM = 645,
     PHASE_SYM = 646,
     PLUGINS_SYM = 647,
     PLUGIN_SYM = 648,
     POINT_SYM = 649,
     POLYGON = 650,
     PORT_SYM = 651,
     POSITION_SYM = 652,
     PRECISION = 653,
     PREPARE_SYM = 654,
     PRESERVE_SYM = 655,
     PREV_SYM = 656,
     PRIMARY_SYM = 657,
     PRIVILEGES = 658,
     PROCEDURE_SYM = 659,
     PROCESS = 660,
     PROCESSLIST_SYM = 661,
     PROFILE_SYM = 662,
     PROFILES_SYM = 663,
     PROXY_SYM = 664,
     PURGE = 665,
     QUARTER_SYM = 666,
     QUERY_SYM = 667,
     QUICK = 668,
     RANGE_SYM = 669,
     READS_SYM = 670,
     READ_ONLY_SYM = 671,
     READ_SYM = 672,
     READ_WRITE_SYM = 673,
     REAL = 674,
     REBUILD_SYM = 675,
     RECOVER_SYM = 676,
     REDOFILE_SYM = 677,
     REDO_BUFFER_SIZE_SYM = 678,
     REDUNDANT_SYM = 679,
     REFERENCES = 680,
     REGEXP = 681,
     RELAY = 682,
     RELAYLOG_SYM = 683,
     RELAY_LOG_FILE_SYM = 684,
     RELAY_LOG_POS_SYM = 685,
     RELAY_THREAD = 686,
     RELEASE_SYM = 687,
     RELOAD = 688,
     REMOVE_SYM = 689,
     RENAME = 690,
     REORGANIZE_SYM = 691,
     REPAIR = 692,
     REPEATABLE_SYM = 693,
     REPEAT_SYM = 694,
     REPLACE = 695,
     REPLICATION = 696,
     REQUIRE_SYM = 697,
     RESET_SYM = 698,
     RESIGNAL_SYM = 699,
     RESOURCES = 700,
     RESTORE_SYM = 701,
     RESTRICT = 702,
     RESUME_SYM = 703,
     RETURNS_SYM = 704,
     RETURN_SYM = 705,
     REVOKE = 706,
     RIGHT = 707,
     ROLLBACK_SYM = 708,
     ROLLUP_SYM = 709,
     ROUTINE_SYM = 710,
     ROWS_SYM = 711,
     ROW_FORMAT_SYM = 712,
     ROW_SYM = 713,
     RTREE_SYM = 714,
     SAVEPOINT_SYM = 715,
     SCHEDULE_SYM = 716,
     SCHEMA_NAME_SYM = 717,
     SECOND_MICROSECOND_SYM = 718,
     SECOND_SYM = 719,
     SECURITY_SYM = 720,
     SELECT_SYM = 721,
     SENSITIVE_SYM = 722,
     SEPARATOR_SYM = 723,
     SERIALIZABLE_SYM = 724,
     SERIAL_SYM = 725,
     SESSION_SYM = 726,
     SERVER_SYM = 727,
     SERVER_OPTIONS = 728,
     SET = 729,
     SET_VAR = 730,
     SHARE_SYM = 731,
     SHIFT_LEFT = 732,
     SHIFT_RIGHT = 733,
     SHOW = 734,
     SHUTDOWN = 735,
     SIGNAL_SYM = 736,
     SIGNED_SYM = 737,
     SIMPLE_SYM = 738,
     SLAVE = 739,
     SLOW = 740,
     SMALLINT = 741,
     SNAPSHOT_SYM = 742,
     SOCKET_SYM = 743,
     SOFT_SYM = 744,
     SONAME_SYM = 745,
     SOUNDS_SYM = 746,
     SOURCE_SYM = 747,
     SPATIAL_SYM = 748,
     SPECIFIC_SYM = 749,
     SQLEXCEPTION_SYM = 750,
     SQLSTATE_SYM = 751,
     SQLWARNING_SYM = 752,
     SQL_BIG_RESULT = 753,
     SQL_BUFFER_RESULT = 754,
     SQL_CACHE_SYM = 755,
     SQL_CALC_FOUND_ROWS = 756,
     SQL_NO_CACHE_SYM = 757,
     SQL_SMALL_RESULT = 758,
     SQL_SYM = 759,
     SQL_THREAD = 760,
     SSL_SYM = 761,
     STARTING = 762,
     STARTS_SYM = 763,
     START_SYM = 764,
     STATUS_SYM = 765,
     STDDEV_SAMP_SYM = 766,
     STD_SYM = 767,
     STOP_SYM = 768,
     STORAGE_SYM = 769,
     STRAIGHT_JOIN = 770,
     STRING_SYM = 771,
     SUBCLASS_ORIGIN_SYM = 772,
     SUBDATE_SYM = 773,
     SUBJECT_SYM = 774,
     SUBPARTITIONS_SYM = 775,
     SUBPARTITION_SYM = 776,
     SUBSTRING = 777,
     SUM_SYM = 778,
     SUPER_SYM = 779,
     SUSPEND_SYM = 780,
     SWAPS_SYM = 781,
     SWITCHES_SYM = 782,
     SYSDATE = 783,
     TABLES = 784,
     TABLESPACE = 785,
     TABLE_REF_PRIORITY = 786,
     TABLE_STATS_SYM = 787,
     TABLE_SYM = 788,
     TABLE_CHECKSUM_SYM = 789,
     TABLE_NAME_SYM = 790,
     TEMPORARY = 791,
     TEMPTABLE_SYM = 792,
     TERMINATED = 793,
     TEXT_STRING = 794,
     TEXT_SYM = 795,
     THAN_SYM = 796,
     THEN_SYM = 797,
     TIMESTAMP = 798,
     TIMESTAMP_ADD = 799,
     TIMESTAMP_DIFF = 800,
     TIME_SYM = 801,
     TINYBLOB = 802,
     TINYINT = 803,
     TINYTEXT = 804,
     TO_SYM = 805,
     TRAILING = 806,
     TRANSACTION_SYM = 807,
     TRANSACTIONAL_SYM = 808,
     TRIGGERS_SYM = 809,
     TRIGGER_SYM = 810,
     TRIM = 811,
     TRUE_SYM = 812,
     TRUNCATE_SYM = 813,
     TYPES_SYM = 814,
     TYPE_SYM = 815,
     UDF_RETURNS_SYM = 816,
     ULONGLONG_NUM = 817,
     UNCOMMITTED_SYM = 818,
     UNDEFINED_SYM = 819,
     UNDERSCORE_CHARSET = 820,
     UNDOFILE_SYM = 821,
     UNDO_BUFFER_SIZE_SYM = 822,
     UNDO_SYM = 823,
     UNICODE_SYM = 824,
     UNINSTALL_SYM = 825,
     UNION_SYM = 826,
     UNIQUE_SYM = 827,
     UNKNOWN_SYM = 828,
     UNLOCK_SYM = 829,
     UNSIGNED = 830,
     UNTIL_SYM = 831,
     UPDATE_SYM = 832,
     UPGRADE_SYM = 833,
     USAGE = 834,
     USER = 835,
     USER_STATS_SYM = 836,
     USE_FRM = 837,
     USE_SYM = 838,
     USING = 839,
     UTC_DATE_SYM = 840,
     UTC_TIMESTAMP_SYM = 841,
     UTC_TIME_SYM = 842,
     VALUES = 843,
     VALUE_SYM = 844,
     VARBINARY = 845,
     VARCHAR = 846,
     VARIABLES = 847,
     VARIANCE_SYM = 848,
     VARYING = 849,
     VAR_SAMP_SYM = 850,
     VIA_SYM = 851,
     VIEW_SYM = 852,
     VIRTUAL_SYM = 853,
     WAIT_SYM = 854,
     WARNINGS = 855,
     WEEK_SYM = 856,
     WHEN_SYM = 857,
     WHERE = 858,
     WHILE_SYM = 859,
     WITH = 860,
     WITH_CUBE_SYM = 861,
     WITH_ROLLUP_SYM = 862,
     WORK_SYM = 863,
     WRAPPER_SYM = 864,
     WRITE_SYM = 865,
     X509_SYM = 866,
     XA_SYM = 867,
     XML_SYM = 868,
     XOR = 869,
     YEAR_MONTH_SYM = 870,
     YEAR_SYM = 871,
     ZEROFILL = 872,
     IMPOSSIBLE_ACTION = 873
   };
#endif
/* Tokens.  */
#define ABORT_SYM 258
#define ACCESSIBLE_SYM 259
#define ACTION 260
#define ADD 261
#define ADDDATE_SYM 262
#define AFTER_SYM 263
#define AGAINST 264
#define AGGREGATE_SYM 265
#define ALGORITHM_SYM 266
#define ALL 267
#define ALTER 268
#define ALWAYS_SYM 269
#define ANALYZE_SYM 270
#define AND_AND_SYM 271
#define AND_SYM 272
#define ANY_SYM 273
#define AS 274
#define ASC 275
#define ASCII_SYM 276
#define ASENSITIVE_SYM 277
#define AT_SYM 278
#define AUTHORS_SYM 279
#define AUTOEXTEND_SIZE_SYM 280
#define AUTO_INC 281
#define AVG_ROW_LENGTH 282
#define AVG_SYM 283
#define BACKUP_SYM 284
#define BEFORE_SYM 285
#define BEGIN_SYM 286
#define BETWEEN_SYM 287
#define BIGINT 288
#define BINARY 289
#define BINLOG_SYM 290
#define BIN_NUM 291
#define BIT_AND 292
#define BIT_OR 293
#define BIT_SYM 294
#define BIT_XOR 295
#define BLOB_SYM 296
#define BLOCK_SYM 297
#define BOOLEAN_SYM 298
#define BOOL_SYM 299
#define BOTH 300
#define BTREE_SYM 301
#define BY 302
#define BYTE_SYM 303
#define CACHE_SYM 304
#define CALL_SYM 305
#define CASCADE 306
#define CASCADED 307
#define CASE_SYM 308
#define CAST_SYM 309
#define CATALOG_NAME_SYM 310
#define CHAIN_SYM 311
#define CHANGE 312
#define CHANGED 313
#define CHARSET 314
#define CHAR_SYM 315
#define CHECKPOINT_SYM 316
#define CHECKSUM_SYM 317
#define CHECK_SYM 318
#define CIPHER_SYM 319
#define CLASS_ORIGIN_SYM 320
#define CLIENT_SYM 321
#define CLIENT_STATS_SYM 322
#define CLOSE_SYM 323
#define COALESCE 324
#define CODE_SYM 325
#define COLLATE_SYM 326
#define COLLATION_SYM 327
#define COLUMNS 328
#define COLUMN_ADD_SYM 329
#define COLUMN_CREATE_SYM 330
#define COLUMN_DELETE_SYM 331
#define COLUMN_EXISTS_SYM 332
#define COLUMN_GET_SYM 333
#define COLUMN_LIST_SYM 334
#define COLUMN_SYM 335
#define COLUMN_NAME_SYM 336
#define COMMENT_SYM 337
#define COMMITTED_SYM 338
#define COMMIT_SYM 339
#define COMPACT_SYM 340
#define COMPLETION_SYM 341
#define COMPRESSED_SYM 342
#define CONCURRENT 343
#define CONDITION_SYM 344
#define CONNECTION_SYM 345
#define CONSISTENT_SYM 346
#define CONSTRAINT 347
#define CONSTRAINT_CATALOG_SYM 348
#define CONSTRAINT_NAME_SYM 349
#define CONSTRAINT_SCHEMA_SYM 350
#define CONTAINS_SYM 351
#define CONTEXT_SYM 352
#define CONTINUE_SYM 353
#define CONTRIBUTORS_SYM 354
#define CONVERT_SYM 355
#define COUNT_SYM 356
#define CPU_SYM 357
#define CREATE 358
#define CROSS 359
#define CUBE_SYM 360
#define CURDATE 361
#define CURRENT_USER 362
#define CURSOR_SYM 363
#define CURSOR_NAME_SYM 364
#define CURTIME 365
#define DATABASE 366
#define DATABASES 367
#define DATAFILE_SYM 368
#define DATA_SYM 369
#define DATETIME 370
#define DATE_ADD_INTERVAL 371
#define DATE_SUB_INTERVAL 372
#define DATE_SYM 373
#define DAY_HOUR_SYM 374
#define DAY_MICROSECOND_SYM 375
#define DAY_MINUTE_SYM 376
#define DAY_SECOND_SYM 377
#define DAY_SYM 378
#define DEALLOCATE_SYM 379
#define DECIMAL_NUM 380
#define DECIMAL_SYM 381
#define DECLARE_SYM 382
#define DEFAULT 383
#define DEFINER_SYM 384
#define DELAYED_SYM 385
#define DELAY_KEY_WRITE_SYM 386
#define DELETE_SYM 387
#define DESC 388
#define DESCRIBE 389
#define DES_KEY_FILE 390
#define DETERMINISTIC_SYM 391
#define DIRECTORY_SYM 392
#define DISABLE_SYM 393
#define DISCARD 394
#define DISK_SYM 395
#define DISTINCT 396
#define DIV_SYM 397
#define DOUBLE_SYM 398
#define DO_SYM 399
#define DROP 400
#define DUAL_SYM 401
#define DUMPFILE 402
#define DUPLICATE_SYM 403
#define DYNAMIC_SYM 404
#define EACH_SYM 405
#define ELSE 406
#define ELSEIF_SYM 407
#define ENABLE_SYM 408
#define ENCLOSED 409
#define END 410
#define ENDS_SYM 411
#define END_OF_INPUT 412
#define ENGINES_SYM 413
#define ENGINE_SYM 414
#define ENUM 415
#define EQ 416
#define EQUAL_SYM 417
#define ERROR_SYM 418
#define ERRORS 419
#define ESCAPED 420
#define ESCAPE_SYM 421
#define EVENTS_SYM 422
#define EVENT_SYM 423
#define EVERY_SYM 424
#define EXAMINED_SYM 425
#define EXECUTE_SYM 426
#define EXISTS 427
#define EXIT_SYM 428
#define EXPANSION_SYM 429
#define EXTENDED_SYM 430
#define EXTENT_SIZE_SYM 431
#define EXTRACT_SYM 432
#define FALSE_SYM 433
#define FAST_SYM 434
#define FAULTS_SYM 435
#define FETCH_SYM 436
#define FILE_SYM 437
#define FIRST_SYM 438
#define FIXED_SYM 439
#define FLOAT_NUM 440
#define FLOAT_SYM 441
#define FLUSH_SYM 442
#define FORCE_SYM 443
#define FOREIGN 444
#define FOR_SYM 445
#define FOUND_SYM 446
#define FROM 447
#define FULL 448
#define FULLTEXT_SYM 449
#define FUNCTION_SYM 450
#define GE 451
#define GENERAL 452
#define GENERATED_SYM 453
#define GEOMETRYCOLLECTION 454
#define GEOMETRY_SYM 455
#define GET_FORMAT 456
#define GLOBAL_SYM 457
#define GRANT 458
#define GRANTS 459
#define GROUP_SYM 460
#define GROUP_CONCAT_SYM 461
#define GT_SYM 462
#define HANDLER_SYM 463
#define HARD_SYM 464
#define HASH_SYM 465
#define HAVING 466
#define HELP_SYM 467
#define HEX_NUM 468
#define HEX_STRING 469
#define HIGH_PRIORITY 470
#define HOST_SYM 471
#define HOSTS_SYM 472
#define HOUR_MICROSECOND_SYM 473
#define HOUR_MINUTE_SYM 474
#define HOUR_SECOND_SYM 475
#define HOUR_SYM 476
#define IDENT 477
#define IDENTIFIED_SYM 478
#define IDENT_QUOTED 479
#define IF 480
#define IGNORE_SYM 481
#define IGNORE_SERVER_IDS_SYM 482
#define IMPORT 483
#define INDEXES 484
#define INDEX_SYM 485
#define INDEX_STATS_SYM 486
#define INFILE 487
#define INITIAL_SIZE_SYM 488
#define INNER_SYM 489
#define INOUT_SYM 490
#define INSENSITIVE_SYM 491
#define INSERT 492
#define INSERT_METHOD 493
#define INSTALL_SYM 494
#define INTERVAL_SYM 495
#define INTO 496
#define INT_SYM 497
#define INVOKER_SYM 498
#define IN_SYM 499
#define IO_SYM 500
#define IPC_SYM 501
#define IS 502
#define ISOLATION 503
#define ISSUER_SYM 504
#define ITERATE_SYM 505
#define JOIN_SYM 506
#define KEYS 507
#define KEY_BLOCK_SIZE 508
#define KEY_SYM 509
#define KILL_SYM 510
#define LANGUAGE_SYM 511
#define LAST_SYM 512
#define LAST_VALUE 513
#define LE 514
#define LEADING 515
#define LEAVES 516
#define LEAVE_SYM 517
#define LEFT 518
#define LESS_SYM 519
#define LEVEL_SYM 520
#define LEX_HOSTNAME 521
#define LIKE 522
#define LIMIT 523
#define LINEAR_SYM 524
#define LINES 525
#define LINESTRING 526
#define LIST_SYM 527
#define LOAD 528
#define LOCAL_SYM 529
#define LOCATOR_SYM 530
#define LOCKS_SYM 531
#define LOCK_SYM 532
#define LOGFILE_SYM 533
#define LOGS_SYM 534
#define LONGBLOB 535
#define LONGTEXT 536
#define LONG_NUM 537
#define LONG_SYM 538
#define LOOP_SYM 539
#define LOW_PRIORITY 540
#define LT 541
#define MASTER_CONNECT_RETRY_SYM 542
#define MASTER_HOST_SYM 543
#define MASTER_LOG_FILE_SYM 544
#define MASTER_LOG_POS_SYM 545
#define MASTER_PASSWORD_SYM 546
#define MASTER_PORT_SYM 547
#define MASTER_SERVER_ID_SYM 548
#define MASTER_SSL_CAPATH_SYM 549
#define MASTER_SSL_CA_SYM 550
#define MASTER_SSL_CERT_SYM 551
#define MASTER_SSL_CIPHER_SYM 552
#define MASTER_SSL_KEY_SYM 553
#define MASTER_SSL_SYM 554
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 555
#define MASTER_SYM 556
#define MASTER_USER_SYM 557
#define MASTER_HEARTBEAT_PERIOD_SYM 558
#define MATCH 559
#define MAX_CONNECTIONS_PER_HOUR 560
#define MAX_QUERIES_PER_HOUR 561
#define MAX_ROWS 562
#define MAX_SIZE_SYM 563
#define MAX_SYM 564
#define MAX_UPDATES_PER_HOUR 565
#define MAX_USER_CONNECTIONS_SYM 566
#define MAX_VALUE_SYM 567
#define MEDIUMBLOB 568
#define MEDIUMINT 569
#define MEDIUMTEXT 570
#define MEDIUM_SYM 571
#define MEMORY_SYM 572
#define MERGE_SYM 573
#define MESSAGE_TEXT_SYM 574
#define MICROSECOND_SYM 575
#define MIGRATE_SYM 576
#define MINUTE_MICROSECOND_SYM 577
#define MINUTE_SECOND_SYM 578
#define MINUTE_SYM 579
#define MIN_ROWS 580
#define MIN_SYM 581
#define MODE_SYM 582
#define MODIFIES_SYM 583
#define MODIFY_SYM 584
#define MOD_SYM 585
#define MONTH_SYM 586
#define MULTILINESTRING 587
#define MULTIPOINT 588
#define MULTIPOLYGON 589
#define MUTEX_SYM 590
#define MYSQL_ERRNO_SYM 591
#define NAMES_SYM 592
#define NAME_SYM 593
#define NATIONAL_SYM 594
#define NATURAL 595
#define NCHAR_STRING 596
#define NCHAR_SYM 597
#define NDBCLUSTER_SYM 598
#define NE 599
#define NEG 600
#define NEW_SYM 601
#define NEXT_SYM 602
#define NODEGROUP_SYM 603
#define NONE_SYM 604
#define NOT2_SYM 605
#define NOT_SYM 606
#define NOW_SYM 607
#define NO_SYM 608
#define NO_WAIT_SYM 609
#define NO_WRITE_TO_BINLOG 610
#define NULL_SYM 611
#define NUM 612
#define NUMERIC_SYM 613
#define NVARCHAR_SYM 614
#define OFFSET_SYM 615
#define OLD_PASSWORD 616
#define ON 617
#define ONE_SHOT_SYM 618
#define ONE_SYM 619
#define ONLINE_SYM 620
#define OPEN_SYM 621
#define OPTIMIZE 622
#define OPTIONS_SYM 623
#define OPTION 624
#define OPTIONALLY 625
#define OR2_SYM 626
#define ORDER_SYM 627
#define OR_OR_SYM 628
#define OR_SYM 629
#define OUTER 630
#define OUTFILE 631
#define OUT_SYM 632
#define OWNER_SYM 633
#define PACK_KEYS_SYM 634
#define PAGE_SYM 635
#define PAGE_CHECKSUM_SYM 636
#define PARAM_MARKER 637
#define PARSER_SYM 638
#define PARSE_VCOL_EXPR_SYM 639
#define PARTIAL 640
#define PARTITIONING_SYM 641
#define PARTITIONS_SYM 642
#define PARTITION_SYM 643
#define PASSWORD 644
#define PERSISTENT_SYM 645
#define PHASE_SYM 646
#define PLUGINS_SYM 647
#define PLUGIN_SYM 648
#define POINT_SYM 649
#define POLYGON 650
#define PORT_SYM 651
#define POSITION_SYM 652
#define PRECISION 653
#define PREPARE_SYM 654
#define PRESERVE_SYM 655
#define PREV_SYM 656
#define PRIMARY_SYM 657
#define PRIVILEGES 658
#define PROCEDURE_SYM 659
#define PROCESS 660
#define PROCESSLIST_SYM 661
#define PROFILE_SYM 662
#define PROFILES_SYM 663
#define PROXY_SYM 664
#define PURGE 665
#define QUARTER_SYM 666
#define QUERY_SYM 667
#define QUICK 668
#define RANGE_SYM 669
#define READS_SYM 670
#define READ_ONLY_SYM 671
#define READ_SYM 672
#define READ_WRITE_SYM 673
#define REAL 674
#define REBUILD_SYM 675
#define RECOVER_SYM 676
#define REDOFILE_SYM 677
#define REDO_BUFFER_SIZE_SYM 678
#define REDUNDANT_SYM 679
#define REFERENCES 680
#define REGEXP 681
#define RELAY 682
#define RELAYLOG_SYM 683
#define RELAY_LOG_FILE_SYM 684
#define RELAY_LOG_POS_SYM 685
#define RELAY_THREAD 686
#define RELEASE_SYM 687
#define RELOAD 688
#define REMOVE_SYM 689
#define RENAME 690
#define REORGANIZE_SYM 691
#define REPAIR 692
#define REPEATABLE_SYM 693
#define REPEAT_SYM 694
#define REPLACE 695
#define REPLICATION 696
#define REQUIRE_SYM 697
#define RESET_SYM 698
#define RESIGNAL_SYM 699
#define RESOURCES 700
#define RESTORE_SYM 701
#define RESTRICT 702
#define RESUME_SYM 703
#define RETURNS_SYM 704
#define RETURN_SYM 705
#define REVOKE 706
#define RIGHT 707
#define ROLLBACK_SYM 708
#define ROLLUP_SYM 709
#define ROUTINE_SYM 710
#define ROWS_SYM 711
#define ROW_FORMAT_SYM 712
#define ROW_SYM 713
#define RTREE_SYM 714
#define SAVEPOINT_SYM 715
#define SCHEDULE_SYM 716
#define SCHEMA_NAME_SYM 717
#define SECOND_MICROSECOND_SYM 718
#define SECOND_SYM 719
#define SECURITY_SYM 720
#define SELECT_SYM 721
#define SENSITIVE_SYM 722
#define SEPARATOR_SYM 723
#define SERIALIZABLE_SYM 724
#define SERIAL_SYM 725
#define SESSION_SYM 726
#define SERVER_SYM 727
#define SERVER_OPTIONS 728
#define SET 729
#define SET_VAR 730
#define SHARE_SYM 731
#define SHIFT_LEFT 732
#define SHIFT_RIGHT 733
#define SHOW 734
#define SHUTDOWN 735
#define SIGNAL_SYM 736
#define SIGNED_SYM 737
#define SIMPLE_SYM 738
#define SLAVE 739
#define SLOW 740
#define SMALLINT 741
#define SNAPSHOT_SYM 742
#define SOCKET_SYM 743
#define SOFT_SYM 744
#define SONAME_SYM 745
#define SOUNDS_SYM 746
#define SOURCE_SYM 747
#define SPATIAL_SYM 748
#define SPECIFIC_SYM 749
#define SQLEXCEPTION_SYM 750
#define SQLSTATE_SYM 751
#define SQLWARNING_SYM 752
#define SQL_BIG_RESULT 753
#define SQL_BUFFER_RESULT 754
#define SQL_CACHE_SYM 755
#define SQL_CALC_FOUND_ROWS 756
#define SQL_NO_CACHE_SYM 757
#define SQL_SMALL_RESULT 758
#define SQL_SYM 759
#define SQL_THREAD 760
#define SSL_SYM 761
#define STARTING 762
#define STARTS_SYM 763
#define START_SYM 764
#define STATUS_SYM 765
#define STDDEV_SAMP_SYM 766
#define STD_SYM 767
#define STOP_SYM 768
#define STORAGE_SYM 769
#define STRAIGHT_JOIN 770
#define STRING_SYM 771
#define SUBCLASS_ORIGIN_SYM 772
#define SUBDATE_SYM 773
#define SUBJECT_SYM 774
#define SUBPARTITIONS_SYM 775
#define SUBPARTITION_SYM 776
#define SUBSTRING 777
#define SUM_SYM 778
#define SUPER_SYM 779
#define SUSPEND_SYM 780
#define SWAPS_SYM 781
#define SWITCHES_SYM 782
#define SYSDATE 783
#define TABLES 784
#define TABLESPACE 785
#define TABLE_REF_PRIORITY 786
#define TABLE_STATS_SYM 787
#define TABLE_SYM 788
#define TABLE_CHECKSUM_SYM 789
#define TABLE_NAME_SYM 790
#define TEMPORARY 791
#define TEMPTABLE_SYM 792
#define TERMINATED 793
#define TEXT_STRING 794
#define TEXT_SYM 795
#define THAN_SYM 796
#define THEN_SYM 797
#define TIMESTAMP 798
#define TIMESTAMP_ADD 799
#define TIMESTAMP_DIFF 800
#define TIME_SYM 801
#define TINYBLOB 802
#define TINYINT 803
#define TINYTEXT 804
#define TO_SYM 805
#define TRAILING 806
#define TRANSACTION_SYM 807
#define TRANSACTIONAL_SYM 808
#define TRIGGERS_SYM 809
#define TRIGGER_SYM 810
#define TRIM 811
#define TRUE_SYM 812
#define TRUNCATE_SYM 813
#define TYPES_SYM 814
#define TYPE_SYM 815
#define UDF_RETURNS_SYM 816
#define ULONGLONG_NUM 817
#define UNCOMMITTED_SYM 818
#define UNDEFINED_SYM 819
#define UNDERSCORE_CHARSET 820
#define UNDOFILE_SYM 821
#define UNDO_BUFFER_SIZE_SYM 822
#define UNDO_SYM 823
#define UNICODE_SYM 824
#define UNINSTALL_SYM 825
#define UNION_SYM 826
#define UNIQUE_SYM 827
#define UNKNOWN_SYM 828
#define UNLOCK_SYM 829
#define UNSIGNED 830
#define UNTIL_SYM 831
#define UPDATE_SYM 832
#define UPGRADE_SYM 833
#define USAGE 834
#define USER 835
#define USER_STATS_SYM 836
#define USE_FRM 837
#define USE_SYM 838
#define USING 839
#define UTC_DATE_SYM 840
#define UTC_TIMESTAMP_SYM 841
#define UTC_TIME_SYM 842
#define VALUES 843
#define VALUE_SYM 844
#define VARBINARY 845
#define VARCHAR 846
#define VARIABLES 847
#define VARIANCE_SYM 848
#define VARYING 849
#define VAR_SAMP_SYM 850
#define VIA_SYM 851
#define VIEW_SYM 852
#define VIRTUAL_SYM 853
#define WAIT_SYM 854
#define WARNINGS 855
#define WEEK_SYM 856
#define WHEN_SYM 857
#define WHERE 858
#define WHILE_SYM 859
#define WITH 860
#define WITH_CUBE_SYM 861
#define WITH_ROLLUP_SYM 862
#define WORK_SYM 863
#define WRAPPER_SYM 864
#define WRITE_SYM 865
#define X509_SYM 866
#define XA_SYM 867
#define XML_SYM 868
#define XOR 869
#define YEAR_MONTH_SYM 870
#define YEAR_SYM 871
#define ZEROFILL 872
#define IMPOSSIBLE_ACTION 873




#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{

/* Line 214 of yacc.c  */
#line 725 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"

  int  num;
  ulong ulong_num;
  ulonglong ulonglong_number;
  longlong longlong_number;
  LEX_STRING lex_str;
  LEX_STRING *lex_str_ptr;
  LEX_SYMBOL symbol;
  Table_ident *table;
  char *simple_string;
  Item *item;
  Item_num *item_num;
  List<Item> *item_list;
  List<String> *string_list;
  String *string;
  Key_part_spec *key_part;
  TABLE_LIST *table_list;
  udf_func *udf;
  LEX_USER *lex_user;
  struct sys_var_with_base variable;
  enum enum_var_type var_type;
  Key::Keytype key_type;
  enum ha_key_alg key_alg;
  handlerton *db_type;
  enum row_type row_type;
  enum ha_rkey_function ha_rkey_mode;
  enum enum_tx_isolation tx_isolation;
  enum Cast_target cast_type;
  enum Item_udftype udf_type;
  enum ha_choice choice;
  CHARSET_INFO *charset;
  thr_lock_type lock_type;
  interval_type interval, interval_time_st;
  timestamp_type date_time_type;
  st_select_lex *select_lex;
  chooser_compare_func_creator boolfunc2creator;
  struct sp_cond_type *spcondtype;
  struct { int vars, conds, hndlrs, curs; } spblock;
  sp_name *spname;
  LEX *lex;
  sp_head *sphead;
  struct p_elem_val *p_elem_value;
  enum index_hint_type index_hint;
  enum enum_filetype filetype;
  enum Foreign_key::fk_option m_fk_option;
  enum enum_yes_no_unknown m_yes_no_unk;
  Diag_condition_item_name diag_condition_item_name;
  DYNCALL_CREATE_DEF *dyncol_def;
  List<DYNCALL_CREATE_DEF> *dyncol_def_list;
  bool is_not_empty;



/* Line 214 of yacc.c  */
#line 2109 "/home/buildbot/buildbot/build/mkdist/sql/sql_yacc.cc"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
#endif


/* Copy the second part of user declarations.  */

/* Line 264 of yacc.c  */
#line 777 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"

bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);


/* Line 264 of yacc.c  */
#line 2126 "/home/buildbot/buildbot/build/mkdist/sql/sql_yacc.cc"

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif

/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static int
YYID (int yyi)
#else
static int
YYID (yyi)
    int yyi;
#endif
{
  return yyi;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H
#      define _STDLIB_H 1
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \
       && ! ((defined YYMALLOC || defined malloc) \
	     && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H
#    define _STDLIB_H 1
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */


#if (! defined yyoverflow \
     && (! defined __cplusplus \
	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yytype_int16 yyss_alloc;
  YYSTYPE yyvs_alloc;
};

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
	Stack = &yyptr->Stack_alloc;					\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  601
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   55743

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  638
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  923
/* YYNRULES -- Number of rules.  */
#define YYNRULES  2631
/* YYNRULES -- Number of states.  */
#define YYNSTATES  4458

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   873

#define YYTRANSLATE(YYX)						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const yytype_uint16 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   631,     2,     2,     2,   625,   620,     2,
     628,   629,   623,   622,   630,   621,   636,   624,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   637,   634,
       2,     2,     2,     2,   635,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,   626,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   632,   619,   633,   627,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const yytype_uint16 yyprhs[] =
{
       0,     0,     3,     5,     6,    11,    14,    15,    17,    19,
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
     101,   103,   105,   107,   109,   111,   113,   115,   117,   119,
     121,   123,   125,   127,   131,   133,   135,   140,   142,   145,
     146,   151,   152,   155,   159,   161,   164,   165,   169,   170,
     176,   178,   182,   186,   190,   194,   198,   202,   206,   210,
     214,   218,   222,   226,   230,   234,   240,   242,   243,   245,
     249,   251,   255,   259,   263,   267,   268,   276,   277,   290,
     291,   304,   305,   318,   319,   326,   327,   331,   336,   341,
     345,   348,   359,   361,   365,   368,   371,   374,   377,   380,
     383,   386,   387,   401,   402,   409,   412,   413,   415,   419,
     421,   422,   425,   426,   429,   430,   432,   436,   441,   442,
     445,   446,   449,   451,   453,   455,   457,   459,   461,   463,
     465,   467,   469,   471,   473,   475,   476,   480,   482,   483,
     486,   487,   490,   493,   496,   499,   502,   506,   510,   512,
     514,   516,   519,   523,   527,   528,   533,   534,   538,   539,
     541,   545,   547,   548,   550,   554,   556,   557,   561,   562,
     564,   568,   570,   575,   576,   578,   580,   582,   583,   587,
     590,   594,   595,   599,   600,   606,   612,   613,   621,   627,
     628,   631,   633,   635,   637,   641,   643,   645,   647,   651,
     652,   654,   656,   658,   660,   663,   665,   669,   671,   673,
     674,   676,   677,   680,   684,   690,   692,   694,   696,   698,
     700,   702,   704,   706,   708,   710,   712,   714,   716,   718,
     720,   724,   726,   730,   731,   734,   736,   738,   740,   742,
     744,   746,   748,   750,   752,   754,   756,   758,   760,   761,
     767,   768,   771,   772,   776,   777,   780,   783,   786,   789,
     790,   797,   800,   801,   804,   806,   808,   812,   813,   814,
     815,   823,   824,   827,   830,   832,   834,   835,   836,   845,
     846,   853,   855,   858,   860,   863,   864,   865,   872,   873,
     874,   881,   882,   885,   886,   892,   893,   895,   896,   902,
     903,   906,   907,   913,   918,   919,   920,   929,   930,   938,
     940,   942,   944,   946,   948,   951,   956,   962,   963,   968,
     973,   978,   982,   986,   989,   992,   993,   996,   998,  1001,
    1005,  1007,  1009,  1011,  1013,  1015,  1018,  1022,  1024,  1026,
    1028,  1030,  1032,  1034,  1036,  1038,  1040,  1042,  1045,  1049,
    1051,  1053,  1055,  1057,  1059,  1061,  1063,  1066,  1070,  1072,
    1074,  1076,  1078,  1080,  1082,  1084,  1086,  1088,  1091,  1095,
    1097,  1099,  1101,  1104,  1107,  1110,  1112,  1114,  1116,  1118,
    1121,  1125,  1129,  1133,  1137,  1141,  1145,  1149,  1153,  1158,
    1159,  1161,  1163,  1165,  1167,  1169,  1172,  1176,  1179,  1184,
    1185,  1192,  1193,  1199,  1200,  1201,  1207,  1208,  1216,  1218,
    1219,  1221,  1222,  1227,  1228,  1229,  1233,  1239,  1246,  1247,
    1252,  1255,  1258,  1261,  1264,  1265,  1267,  1268,  1272,  1273,
    1275,  1277,  1281,  1283,  1288,  1294,  1300,  1301,  1304,  1305,
    1306,  1314,  1315,  1326,  1328,  1332,  1334,  1336,  1337,  1340,
    1341,  1345,  1347,  1351,  1352,  1359,  1361,  1362,  1363,  1369,
    1370,  1375,  1377,  1379,  1381,  1385,  1387,  1391,  1392,  1393,
    1399,  1401,  1405,  1407,  1409,  1410,  1414,  1416,  1420,  1421,
    1426,  1428,  1429,  1431,  1434,  1436,  1440,  1445,  1449,  1453,
    1457,  1461,  1466,  1471,  1475,  1476,  1477,  1484,  1485,  1487,
    1488,  1490,  1492,  1495,  1497,  1499,  1500,  1502,  1504,  1507,
    1509,  1510,  1514,  1515,  1517,  1519,  1522,  1524,  1527,  1531,
    1535,  1539,  1543,  1547,  1551,  1555,  1559,  1563,  1567,  1571,
    1575,  1579,  1583,  1587,  1588,  1595,  1597,  1599,  1603,  1608,
    1613,  1616,  1619,  1622,  1626,  1630,  1634,  1638,  1642,  1646,
    1650,  1655,  1660,  1662,  1664,  1666,  1668,  1670,  1672,  1674,
    1676,  1678,  1680,  1682,  1684,  1686,  1689,  1691,  1693,  1695,
    1697,  1699,  1701,  1705,  1707,  1709,  1712,  1715,  1716,  1725,
    1726,  1736,  1737,  1747,  1748,  1758,  1767,  1770,  1771,  1773,
    1778,  1779,  1781,  1784,  1785,  1789,  1792,  1801,  1802,  1805,
    1806,  1808,  1810,  1811,  1813,  1816,  1818,  1820,  1823,  1826,
    1831,  1835,  1839,  1843,  1847,  1849,  1852,  1854,  1856,  1860,
    1863,  1867,  1870,  1873,  1875,  1879,  1883,  1886,  1890,  1892,
    1895,  1898,  1901,  1903,  1906,  1908,  1910,  1912,  1915,  1919,
    1922,  1926,  1929,  1932,  1936,  1940,  1944,  1945,  1952,  1953,
    1960,  1963,  1965,  1967,  1969,  1971,  1973,  1975,  1977,  1979,
    1981,  1983,  1985,  1988,  1991,  1993,  1996,  1998,  2001,  2005,
    2008,  2010,  2012,  2014,  2016,  2018,  2020,  2022,  2025,  2026,
    2028,  2030,  2036,  2037,  2039,  2042,  2044,  2046,  2048,  2050,
    2054,  2058,  2062,  2066,  2067,  2069,  2070,  2072,  2073,  2075,
    2078,  2080,  2082,  2085,  2088,  2093,  2095,  2099,  2102,  2104,
    2107,  2110,  2113,  2117,  2121,  2125,  2129,  2132,  2135,  2137,
    2139,  2141,  2144,  2146,  2148,  2150,  2152,  2154,  2155,  2158,
    2160,  2162,  2164,  2166,  2168,  2169,  2172,  2174,  2176,  2177,
    2179,  2181,  2184,  2187,  2189,  2192,  2195,  2196,  2198,  2200,
    2202,  2206,  2208,  2212,  2213,  2215,  2216,  2218,  2224,  2225,
    2229,  2233,  2235,  2236,  2239,  2242,  2245,  2246,  2250,  2254,
    2261,  2268,  2270,  2272,  2275,  2278,  2281,  2283,  2286,  2289,
    2291,  2293,  2294,  2296,  2298,  2300,  2302,  2303,  2305,  2307,
    2309,  2310,  2312,  2315,  2316,  2318,  2319,  2321,  2322,  2324,
    2326,  2329,  2331,  2334,  2336,  2339,  2342,  2345,  2349,  2352,
    2356,  2360,  2364,  2368,  2370,  2372,  2374,  2376,  2380,  2382,
    2384,  2386,  2391,  2394,  2396,  2401,  2402,  2404,  2405,  2408,
    2410,  2414,  2415,  2422,  2423,  2429,  2437,  2438,  2444,  2445,
    2451,  2452,  2458,  2459,  2464,  2465,  2476,  2480,  2485,  2489,
    2493,  2501,  2502,  2506,  2508,  2513,  2514,  2518,  2519,  2522,
    2523,  2525,  2526,  2529,  2532,  2535,  2538,  2540,  2542,  2544,
    2548,  2553,  2554,  2561,  2566,  2567,  2573,  2574,  2581,  2586,
    2590,  2592,  2595,  2597,  2599,  2600,  2606,  2607,  2611,  2614,
    2615,  2621,  2622,  2623,  2630,  2632,  2636,  2638,  2640,  2644,
    2647,  2651,  2654,  2659,  2660,  2667,  2668,  2669,  2677,  2682,
    2687,  2691,  2695,  2698,  2701,  2708,  2714,  2718,  2724,  2726,
    2728,  2730,  2731,  2733,  2734,  2736,  2737,  2740,  2741,  2743,
    2746,  2748,  2750,  2752,  2753,  2755,  2757,  2758,  2761,  2763,
    2764,  2766,  2768,  2770,  2771,  2777,  2781,  2782,  2788,  2792,
    2796,  2797,  2801,  2802,  2805,  2807,  2811,  2812,  2814,  2816,
    2817,  2820,  2822,  2826,  2827,  2833,  2834,  2836,  2838,  2839,
    2846,  2847,  2849,  2851,  2854,  2856,  2858,  2860,  2861,  2867,
    2870,  2871,  2877,  2878,  2880,  2882,  2885,  2887,  2889,  2891,
    2893,  2895,  2898,  2899,  2905,  2906,  2908,  2910,  2911,  2916,
    2921,  2925,  2931,  2933,  2937,  2941,  2942,  2949,  2951,  2953,
    2955,  2959,  2962,  2966,  2968,  2970,  2971,  2978,  2980,  2982,
    2984,  2988,  2992,  2997,  2998,  3005,  3006,  3009,  3010,  3015,
    3016,  3019,  3021,  3024,  3029,  3032,  3036,  3039,  3043,  3044,
    3048,  3049,  3050,  3057,  3060,  3062,  3064,  3067,  3070,  3079,
    3084,  3085,  3087,  3090,  3092,  3094,  3096,  3098,  3099,  3102,
    3107,  3111,  3113,  3115,  3119,  3124,  3125,  3126,  3127,  3130,
    3133,  3135,  3137,  3138,  3141,  3145,  3146,  3149,  3153,  3157,
    3161,  3164,  3168,  3173,  3177,  3182,  3186,  3191,  3193,  3197,
    3202,  3206,  3210,  3217,  3219,  3225,  3232,  3238,  3246,  3253,
    3262,  3268,  3275,  3280,  3285,  3291,  3295,  3300,  3302,  3306,
    3310,  3314,  3318,  3322,  3326,  3332,  3338,  3342,  3346,  3350,
    3354,  3358,  3362,  3364,  3366,  3368,  3370,  3372,  3374,  3376,
    3378,  3380,  3382,  3384,  3386,  3388,  3390,  3392,  3394,  3396,
    3397,  3400,  3402,  3405,  3407,  3409,  3411,  3414,  3417,  3419,
    3421,  3424,  3427,  3432,  3434,  3438,  3440,  3442,  3444,  3446,
    3448,  3452,  3454,  3456,  3458,  3460,  3464,  3467,  3470,  3473,
    3476,  3480,  3484,  3490,  3497,  3502,  3507,  3515,  3518,  3525,
    3531,  3538,  3545,  3550,  3555,  3561,  3566,  3573,  3576,  3581,
    3586,  3591,  3602,  3609,  3618,  3625,  3630,  3635,  3642,  3647,
    3652,  3657,  3664,  3669,  3677,  3685,  3693,  3700,  3707,  3714,
    3721,  3725,  3730,  3737,  3746,  3749,  3752,  3761,  3770,  3777,
    3784,  3787,  3794,  3801,  3810,  3819,  3826,  3835,  3842,  3845,
    3854,  3863,  3866,  3869,  3872,  3879,  3886,  3893,  3898,  3903,
    3912,  3917,  3922,  3927,  3932,  3936,  3945,  3950,  3955,  3962,
    3967,  3972,  3977,  3984,  3993,  4000,  4005,  4012,  4014,  4021,
    4026,  4031,  4036,  4041,  4046,  4053,  4058,  4059,  4065,  4072,
    4075,  4079,  4080,  4085,  4086,  4090,  4091,  4093,  4095,  4099,
    4104,  4109,  4115,  4120,  4125,  4130,  4136,  4141,  4142,  4143,
    4151,  4156,  4162,  4167,  4173,  4178,  4183,  4188,  4193,  4198,
    4204,  4205,  4214,  4215,  4219,  4223,  4225,  4230,  4231,  4233,
    4234,  4237,  4238,  4239,  4244,  4249,  4252,  4253,  4257,  4260,
    4264,  4267,  4269,  4271,  4274,  4276,  4279,  4281,  4284,  4287,
    4290,  4291,  4295,  4296,  4298,  4300,  4304,  4306,  4310,  4312,
    4316,  4317,  4319,  4320,  4323,  4328,  4334,  4336,  4338,  4340,
    4342,  4347,  4349,  4353,  4357,  4361,  4362,  4369,  4370,  4377,
    4378,  4387,  4392,  4393,  4402,  4403,  4414,  4421,  4422,  4431,
    4432,  4443,  4450,  4452,  4455,  4458,  4459,  4464,  4468,  4474,
    4477,  4478,  4479,  4487,  4489,  4490,  4491,  4498,  4499,  4503,
    4504,  4505,  4511,  4512,  4514,  4515,  4517,  4518,  4521,  4525,
    4529,  4531,  4533,  4534,  4542,  4543,  4551,  4553,  4556,  4557,
    4558,  4561,  4562,  4565,  4566,  4568,  4570,  4572,  4574,  4578,
    4580,  4584,  4586,  4588,  4590,  4592,  4594,  4596,  4598,  4600,
    4602,  4604,  4606,  4608,  4610,  4612,  4614,  4616,  4618,  4620,
    4622,  4624,  4626,  4628,  4630,  4632,  4634,  4635,  4637,  4639,
    4640,  4643,  4644,  4646,  4647,  4648,  4652,  4653,  4654,  4658,
    4661,  4662,  4663,  4668,  4673,  4676,  4677,  4679,  4681,  4685,
    4689,  4691,  4694,  4695,  4697,  4698,  4703,  4708,  4711,  4712,
    4714,  4716,  4717,  4719,  4720,  4722,  4725,  4731,  4736,  4738,
    4742,  4746,  4748,  4750,  4752,  4754,  4756,  4758,  4759,  4762,
    4766,  4771,  4773,  4776,  4779,  4781,  4783,  4785,  4787,  4789,
    4791,  4793,  4795,  4797,  4799,  4801,  4803,  4805,  4807,  4809,
    4811,  4813,  4815,  4817,  4819,  4821,  4823,  4825,  4827,  4829,
    4831,  4832,  4833,  4840,  4841,  4843,  4847,  4849,  4853,  4854,
    4857,  4861,  4863,  4866,  4868,  4869,  4873,  4874,  4875,  4883,
    4886,  4888,  4889,  4893,  4894,  4902,  4903,  4910,  4915,  4922,
    4927,  4932,  4937,  4938,  4945,  4950,  4955,  4961,  4968,  4973,
    4975,  4979,  4981,  4983,  4987,  4989,  4990,  4993,  4994,  4996,
    4997,  4998,  5007,  5008,  5009,  5016,  5017,  5019,  5021,  5023,
    5025,  5027,  5030,  5032,  5034,  5036,  5040,  5045,  5046,  5050,
    5054,  5056,  5059,  5062,  5063,  5067,  5068,  5074,  5078,  5080,
    5084,  5086,  5090,  5092,  5094,  5095,  5097,  5098,  5103,  5104,
    5106,  5110,  5112,  5114,  5116,  5117,  5118,  5125,  5126,  5127,
    5139,  5143,  5145,  5149,  5153,  5155,  5159,  5160,  5162,  5163,
    5168,  5169,  5176,  5177,  5183,  5184,  5191,  5193,  5197,  5200,
    5205,  5206,  5209,  5210,  5213,  5215,  5217,  5219,  5220,  5225,
    5226,  5228,  5229,  5231,  5233,  5237,  5239,  5241,  5244,  5247,
    5250,  5252,  5254,  5256,  5258,  5259,  5263,  5264,  5268,  5271,
    5276,  5281,  5285,  5290,  5295,  5297,  5301,  5305,  5312,  5315,
    5318,  5319,  5326,  5327,  5334,  5340,  5343,  5345,  5347,  5349,
    5355,  5361,  5364,  5367,  5369,  5374,  5378,  5381,  5385,  5388,
    5391,  5393,  5397,  5402,  5406,  5410,  5413,  5416,  5418,  5420,
    5422,  5424,  5428,  5432,  5436,  5440,  5444,  5448,  5452,  5456,
    5458,  5460,  5462,  5464,  5466,  5467,  5469,  5470,  5473,  5474,
    5476,  5478,  5480,  5481,  5484,  5485,  5488,  5489,  5492,  5495,
    5496,  5501,  5502,  5507,  5509,  5511,  5512,  5514,  5516,  5517,
    5519,  5521,  5522,  5527,  5528,  5529,  5535,  5537,  5538,  5543,
    5547,  5549,  5552,  5555,  5558,  5561,  5564,  5567,  5570,  5572,
    5574,  5576,  5578,  5580,  5582,  5584,  5586,  5588,  5590,  5592,
    5594,  5595,  5597,  5598,  5602,  5603,  5607,  5611,  5613,  5614,
    5618,  5620,  5623,  5624,  5626,  5627,  5631,  5635,  5638,  5641,
    5642,  5648,  5649,  5651,  5653,  5654,  5656,  5658,  5660,  5663,
    5666,  5667,  5668,  5669,  5670,  5692,  5694,  5696,  5697,  5699,
    5700,  5702,  5704,  5705,  5707,  5709,  5710,  5713,  5716,  5718,
    5722,  5727,  5731,  5735,  5736,  5739,  5742,  5744,  5748,  5752,
    5753,  5758,  5759,  5763,  5765,  5767,  5768,  5772,  5775,  5779,
    5781,  5783,  5786,  5787,  5790,  5794,  5796,  5802,  5804,  5806,
    5809,  5812,  5814,  5816,  5818,  5820,  5822,  5824,  5827,  5830,
    5832,  5834,  5836,  5838,  5840,  5842,  5844,  5846,  5849,  5852,
    5855,  5858,  5861,  5863,  5865,  5867,  5869,  5871,  5873,  5875,
    5879,  5885,  5887,  5889,  5891,  5893,  5895,  5899,  5904,  5910,
    5912,  5918,  5922,  5925,  5927,  5931,  5934,  5937,  5942,  5944,
    5946,  5948,  5950,  5952,  5954,  5956,  5958,  5960,  5962,  5964,
    5966,  5968,  5970,  5974,  5977,  5979,  5981,  5983,  5985,  5987,
    5989,  5991,  5993,  5995,  5997,  5999,  6001,  6003,  6005,  6007,
    6009,  6011,  6013,  6015,  6017,  6019,  6021,  6023,  6025,  6027,
    6029,  6031,  6033,  6035,  6037,  6039,  6041,  6043,  6045,  6047,
    6049,  6051,  6053,  6055,  6057,  6059,  6061,  6063,  6065,  6067,
    6069,  6071,  6073,  6075,  6077,  6079,  6081,  6083,  6085,  6087,
    6089,  6091,  6093,  6095,  6097,  6099,  6101,  6103,  6105,  6107,
    6109,  6111,  6113,  6115,  6117,  6119,  6121,  6123,  6125,  6127,
    6129,  6131,  6133,  6135,  6137,  6139,  6141,  6143,  6145,  6147,
    6149,  6151,  6153,  6155,  6157,  6159,  6161,  6163,  6165,  6167,
    6169,  6171,  6173,  6175,  6177,  6179,  6181,  6183,  6185,  6187,
    6189,  6191,  6193,  6195,  6197,  6199,  6201,  6203,  6205,  6207,
    6209,  6211,  6213,  6215,  6217,  6219,  6221,  6223,  6225,  6227,
    6229,  6231,  6233,  6235,  6237,  6239,  6241,  6243,  6245,  6247,
    6249,  6251,  6253,  6255,  6257,  6259,  6261,  6263,  6265,  6267,
    6269,  6271,  6273,  6275,  6277,  6279,  6281,  6283,  6285,  6287,
    6289,  6291,  6293,  6295,  6297,  6299,  6301,  6303,  6305,  6307,
    6309,  6311,  6313,  6315,  6317,  6319,  6321,  6323,  6325,  6327,
    6329,  6331,  6333,  6335,  6337,  6339,  6341,  6343,  6345,  6347,
    6349,  6351,  6353,  6355,  6357,  6359,  6361,  6363,  6365,  6367,
    6369,  6371,  6373,  6375,  6377,  6379,  6381,  6383,  6385,  6387,
    6389,  6391,  6393,  6395,  6397,  6399,  6401,  6403,  6405,  6407,
    6409,  6411,  6413,  6415,  6417,  6419,  6421,  6423,  6425,  6427,
    6429,  6431,  6433,  6435,  6437,  6439,  6441,  6443,  6445,  6447,
    6449,  6451,  6453,  6455,  6457,  6459,  6461,  6463,  6465,  6467,
    6469,  6471,  6473,  6475,  6477,  6479,  6481,  6483,  6485,  6487,
    6489,  6491,  6493,  6495,  6497,  6499,  6501,  6503,  6505,  6507,
    6509,  6511,  6513,  6515,  6517,  6519,  6521,  6523,  6525,  6527,
    6529,  6531,  6533,  6535,  6537,  6539,  6541,  6543,  6545,  6547,
    6549,  6551,  6553,  6555,  6557,  6559,  6561,  6563,  6565,  6567,
    6569,  6571,  6573,  6575,  6577,  6579,  6581,  6583,  6585,  6587,
    6589,  6591,  6593,  6595,  6597,  6599,  6601,  6603,  6605,  6607,
    6609,  6611,  6613,  6615,  6617,  6619,  6621,  6623,  6625,  6627,
    6629,  6631,  6633,  6635,  6637,  6639,  6641,  6643,  6645,  6647,
    6649,  6651,  6653,  6655,  6657,  6659,  6661,  6663,  6665,  6667,
    6669,  6671,  6673,  6675,  6677,  6679,  6680,  6685,  6686,  6688,
    6690,  6694,  6695,  6698,  6700,  6702,  6704,  6706,  6707,  6709,
    6710,  6712,  6714,  6716,  6717,  6720,  6723,  6726,  6728,  6731,
    6736,  6742,  6747,  6754,  6757,  6761,  6765,  6769,  6775,  6777,
    6781,  6785,  6788,  6791,  6794,  6796,  6798,  6803,  6808,  6810,
    6812,  6814,  6816,  6818,  6819,  6824,  6826,  6828,  6830,  6834,
    6838,  6840,  6842,  6845,  6848,  6851,  6852,  6856,  6861,  6865,
    6866,  6874,  6876,  6879,  6881,  6883,  6885,  6887,  6889,  6891,
    6892,  6898,  6900,  6902,  6904,  6906,  6908,  6912,  6919,  6926,
    6933,  6941,  6947,  6951,  6960,  6969,  6978,  6985,  6986,  6988,
    6990,  6993,  6994,  6996,  6998,  7002,  7003,  7007,  7008,  7012,
    7013,  7017,  7018,  7022,  7024,  7026,  7028,  7030,  7032,  7034,
    7036,  7038,  7040,  7042,  7044,  7047,  7050,  7052,  7056,  7059,
    7062,  7065,  7068,  7071,  7074,  7077,  7080,  7082,  7084,  7087,
    7088,  7090,  7094,  7096,  7099,  7102,  7105,  7107,  7111,  7115,
    7117,  7119,  7123,  7125,  7129,  7131,  7133,  7135,  7137,  7142,
    7148,  7153,  7160,  7162,  7163,  7167,  7171,  7173,  7175,  7176,
    7179,  7182,  7185,  7188,  7189,  7192,  7193,  7197,  7200,  7202,
    7205,  7208,  7211,  7214,  7217,  7218,  7222,  7223,  7225,  7226,
    7230,  7233,  7234,  7236,  7239,  7240,  7242,  7247,  7252,  7258,
    7261,  7265,  7266,  7268,  7269,  7274,  7275,  7277,  7279,  7280,
    7282,  7283,  7286,  7289,  7291,  7292,  7294,  7296,  7299,  7303,
    7306,  7307,  7314,  7318,  7319,  7320,  7321,  7323,  7326,  7328,
    7330,  7332,  7334,  7336,  7338,  7340,  7342,  7344,  7347,  7350,
    7354,  7356,  7358,  7360,  7362,  7364,  7366,  7368,  7370,  7372,
    7374,  7376,  7378,  7380,  7381,  7385,  7387,  7390,  7392,  7395,
    7399,  7403,  7407,  7408,  7412,  7416,  7417,  7425,  7426,  7430,
    7432,  7436,  7437,  7441,  7444,  7449,  7450,  7454,  7459,  7464,
    7465,  7466,  7467,  7484,  7493,  7501,  7502,  7503,  7504,  7505,
    7506,  7522,  7523,  7524,  7525,  7526,  7539,  7544,  7549,  7553,
    7558,  7562,  7565,  7567,  7571,  7577,  7579,  7581,  7582,  7584,
    7586,  7587,  7590,  7591,  7592,  7596,  7597,  7600,  7606,  7610,
    7614,  7618
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     639,     0,    -1,   157,    -1,    -1,   642,   640,   634,   641,
      -1,   642,   157,    -1,    -1,   157,    -1,   643,    -1,  1488,
      -1,  1000,    -1,  1062,    -1,  1064,    -1,   692,    -1,   655,
      -1,  1065,    -1,  1054,    -1,  1494,    -1,   662,    -1,   644,
      -1,  1312,    -1,  1344,    -1,  1264,    -1,  1266,    -1,   648,
      -1,  1350,    -1,  1460,    -1,  1451,    -1,   653,    -1,  1276,
      -1,  1558,    -1,  1560,    -1,  1078,    -1,  1370,    -1,  1376,
      -1,  1443,    -1,  1070,    -1,   926,    -1,   836,    -1,  1085,
      -1,   646,    -1,  1366,    -1,  1497,    -1,  1073,    -1,  1057,
      -1,  1279,    -1,  1360,    -1,   727,    -1,  1458,    -1,  1495,
      -1,  1496,    -1,  1097,    -1,  1426,    -1,   720,    -1,  1330,
      -1,  1043,    -1,  1046,    -1,  1323,    -1,  1559,    -1,  1449,
      -1,  1304,    -1,  1375,    -1,  1550,    -1,   645,   399,  1420,
      -1,   124,    -1,   145,    -1,   399,  1420,   192,   647,    -1,
    1417,    -1,   635,  1422,    -1,    -1,   171,  1420,   649,   650,
      -1,    -1,   584,   651,    -1,   651,   630,   652,    -1,   652,
      -1,   635,  1422,    -1,    -1,   212,   654,  1422,    -1,    -1,
      57,   301,   550,   656,   657,    -1,   658,    -1,   657,   630,
     658,    -1,   288,   161,  1417,    -1,   302,   161,  1417,    -1,
     291,   161,  1417,    -1,   292,   161,  1243,    -1,   287,   161,
    1243,    -1,   299,   161,  1243,    -1,   295,   161,  1417,    -1,
     294,   161,  1417,    -1,   296,   161,  1417,    -1,   297,   161,
    1417,    -1,   298,   161,  1417,    -1,   300,   161,  1243,    -1,
     303,   161,  1405,    -1,   227,   161,   628,   659,   629,    -1,
     661,    -1,    -1,   660,    -1,   659,   630,   660,    -1,  1243,
      -1,   289,   161,  1417,    -1,   290,   161,  1245,    -1,   429,
     161,  1417,    -1,   430,   161,  1243,    -1,    -1,   103,   888,
     533,   891,  1413,   663,   824,    -1,    -1,   103,   978,   230,
    1420,   982,   362,  1413,   664,   628,   995,   629,   983,    -1,
      -1,   103,   979,   230,  1420,   981,   362,  1413,   665,   628,
     995,   629,   984,    -1,    -1,   103,   980,   230,  1420,   981,
     362,  1413,   666,   628,   995,   629,   985,    -1,    -1,   103,
     111,   891,  1420,   667,   885,    -1,    -1,   103,   668,  1516,
      -1,   103,   580,   685,  1476,    -1,   103,   278,   205,   787,
      -1,   103,   530,   784,    -1,   103,   669,    -1,   472,  1422,
     189,   114,   609,  1422,   368,   628,   670,   629,    -1,   671,
      -1,   670,   630,   671,    -1,   580,  1417,    -1,   216,  1417,
      -1,   111,  1417,    -1,   378,  1417,    -1,   389,  1417,    -1,
     488,  1417,    -1,   396,  1243,    -1,    -1,  1114,   168,   891,
     686,   673,   362,   461,   674,   679,   676,   681,   144,   682,
      -1,    -1,   169,  1119,  1213,   675,   677,   678,    -1,    23,
    1119,    -1,    -1,   153,    -1,   138,   362,   484,    -1,   138,
      -1,    -1,   508,  1119,    -1,    -1,   156,  1119,    -1,    -1,
     680,    -1,   362,    86,   400,    -1,   362,    86,   351,   400,
      -1,    -1,    82,  1417,    -1,    -1,   683,   684,    -1,   733,
      -1,   735,    -1,   731,    -1,   752,    -1,   770,    -1,   772,
      -1,   767,    -1,   737,    -1,   739,    -1,   740,    -1,   741,
      -1,   742,    -1,   744,    -1,    -1,  1420,   636,  1420,    -1,
    1420,    -1,    -1,   687,   689,    -1,    -1,   688,   690,    -1,
      82,  1417,    -1,   256,   504,    -1,   353,   504,    -1,    96,
     504,    -1,   415,   504,   114,    -1,   328,   504,   114,    -1,
     691,    -1,   689,    -1,   136,    -1,  1125,   136,    -1,   504,
     465,   129,    -1,   504,   465,   243,    -1,    -1,    50,   686,
     693,   694,    -1,    -1,   628,   695,   629,    -1,    -1,   696,
      -1,   696,   630,  1119,    -1,  1119,    -1,    -1,   698,    -1,
     698,   630,   700,    -1,   700,    -1,    -1,  1420,   699,   949,
      -1,    -1,   702,    -1,   702,   630,   703,    -1,   703,    -1,
     704,   699,  1420,   949,    -1,    -1,   244,    -1,   377,    -1,
     235,    -1,    -1,   705,   730,   634,    -1,   730,   634,    -1,
     706,   730,   634,    -1,    -1,   707,   708,   634,    -1,    -1,
     127,   728,   709,   949,   729,    -1,   127,  1420,    89,   190,
     716,    -1,    -1,   127,   713,   208,   190,   710,   714,   730,
      -1,   127,  1420,   108,   190,   711,    -1,    -1,   712,  1097,
      -1,   173,    -1,    98,    -1,   715,    -1,   714,   630,   715,
      -1,   719,    -1,  1243,    -1,   717,    -1,   496,   718,  1418,
      -1,    -1,   589,    -1,   716,    -1,  1420,    -1,   497,    -1,
    1125,   191,    -1,   495,    -1,   481,   721,   723,    -1,  1420,
      -1,   717,    -1,    -1,   721,    -1,    -1,   474,   724,    -1,
     726,   161,   725,    -1,   724,   630,   726,   161,   725,    -1,
    1404,    -1,  1150,    -1,  1409,    -1,    65,    -1,   517,    -1,
      93,    -1,    95,    -1,    94,    -1,    55,    -1,   462,    -1,
     535,    -1,    81,    -1,   109,    -1,   319,    -1,   336,    -1,
     444,   722,   723,    -1,  1420,    -1,   728,   630,  1420,    -1,
      -1,   128,  1119,    -1,   733,    -1,   735,    -1,   731,    -1,
     752,    -1,   770,    -1,   772,    -1,   767,    -1,   737,    -1,
     739,    -1,   740,    -1,   741,    -1,   742,    -1,   744,    -1,
      -1,   225,   732,   747,   155,   225,    -1,    -1,   734,   643,
      -1,    -1,   450,   736,  1119,    -1,    -1,   738,   776,    -1,
     262,  1421,    -1,   250,  1421,    -1,   366,  1420,    -1,    -1,
     181,   745,  1420,   241,   743,   746,    -1,    68,  1420,    -1,
      -1,   347,   192,    -1,   192,    -1,  1420,    -1,   746,   630,
    1420,    -1,    -1,    -1,    -1,   748,  1119,   542,   749,   706,
     750,   751,    -1,    -1,   152,   747,    -1,   151,   706,    -1,
     753,    -1,   756,    -1,    -1,    -1,    53,   754,  1119,   755,
     758,   766,   155,    53,    -1,    -1,    53,   757,   759,   766,
     155,    53,    -1,   760,    -1,   758,   760,    -1,   763,    -1,
     759,   763,    -1,    -1,    -1,   602,   761,  1119,   762,   542,
     706,    -1,    -1,    -1,   602,   764,  1119,   765,   542,   706,
      -1,    -1,   151,   706,    -1,    -1,  1421,   637,   768,   776,
     769,    -1,    -1,  1421,    -1,    -1,  1421,   637,   771,   774,
     769,    -1,    -1,   773,   774,    -1,    -1,    31,   775,   707,
     705,   155,    -1,   284,   706,   155,   284,    -1,    -1,    -1,
     604,   777,  1119,   144,   778,   706,   155,   604,    -1,    -1,
     439,   706,   576,   779,  1119,   155,   439,    -1,    30,    -1,
       8,    -1,   237,    -1,   577,    -1,   132,    -1,   809,   811,
      -1,   809,    57,   806,   790,    -1,   809,     6,   806,   785,
     794,    -1,    -1,   583,   278,   205,  1420,    -1,   809,     6,
     806,   797,    -1,   809,   145,   806,   797,    -1,   810,   789,
     800,    -1,   810,   789,   803,    -1,     6,   807,    -1,     6,
     808,    -1,    -1,   791,   792,    -1,   793,    -1,   792,   793,
      -1,   792,   630,   793,    -1,   812,    -1,   813,    -1,   814,
      -1,   795,    -1,   796,    -1,   795,   796,    -1,   795,   630,
     796,    -1,   812,    -1,   813,    -1,   814,    -1,   815,    -1,
     818,    -1,   820,    -1,   822,    -1,   819,    -1,   798,    -1,
     799,    -1,   798,   799,    -1,   798,   630,   799,    -1,   812,
      -1,   813,    -1,   814,    -1,   820,    -1,   822,    -1,   801,
      -1,   802,    -1,   801,   802,    -1,   801,   630,   802,    -1,
     812,    -1,   816,    -1,   817,    -1,   818,    -1,   820,    -1,
     822,    -1,   819,    -1,   804,    -1,   805,    -1,   804,   805,
      -1,   804,   630,   805,    -1,   812,    -1,   820,    -1,   822,
      -1,   113,  1417,    -1,   566,  1417,    -1,   422,  1417,    -1,
    1420,    -1,  1420,    -1,   416,    -1,   418,    -1,   351,     4,
      -1,   233,  1296,   823,    -1,    25,  1296,   823,    -1,   308,
    1296,   823,    -1,   176,  1296,   823,    -1,   567,  1296,   823,
      -1,   423,  1296,   823,    -1,   348,  1296,  1244,    -1,    82,
    1296,  1417,    -1,  1337,   159,  1296,   899,    -1,    -1,   822,
      -1,   599,    -1,   354,    -1,  1246,    -1,  1416,    -1,   628,
     825,    -1,   892,   831,   828,    -1,   267,  1413,    -1,   628,
     267,  1413,   629,    -1,    -1,   905,   629,   826,   892,   831,
     828,    -1,    -1,   831,   881,   629,   827,  1501,    -1,    -1,
      -1,  1384,   884,   881,   829,  1498,    -1,    -1,  1384,   884,
     628,   881,   629,   830,  1501,    -1,   832,    -1,    -1,   833,
      -1,    -1,   388,   835,   834,   838,    -1,    -1,    -1,   388,
     837,   838,    -1,    47,   839,   849,   850,   857,    -1,   841,
     254,   842,   628,   843,   629,    -1,    -1,   841,   210,   840,
     847,    -1,   414,   847,    -1,   414,   846,    -1,   272,   847,
      -1,   272,   846,    -1,    -1,   269,    -1,    -1,    11,   161,
    1244,    -1,    -1,   844,    -1,   845,    -1,   844,   630,   845,
      -1,  1420,    -1,    73,   628,   843,   629,    -1,   628,  1114,
     855,  1115,   629,    -1,   628,  1114,   855,  1115,   629,    -1,
      -1,   387,  1244,    -1,    -1,    -1,   521,    47,   841,   210,
     848,   851,   856,    -1,    -1,   521,    47,   841,   254,   842,
     628,   853,   629,   852,   856,    -1,   854,    -1,   853,   630,
     854,    -1,  1420,    -1,  1122,    -1,    -1,   520,  1244,    -1,
      -1,   628,   858,   629,    -1,   859,    -1,   858,   630,   859,
      -1,    -1,   388,   860,   861,   862,   878,   873,    -1,  1420,
      -1,    -1,    -1,   588,   264,   541,   863,   865,    -1,    -1,
     588,   244,   864,   866,    -1,   312,    -1,   868,    -1,   868,
      -1,   628,   867,   629,    -1,   868,    -1,   867,   630,   868,
      -1,    -1,    -1,   628,   869,   871,   870,   629,    -1,   872,
      -1,   871,   630,   872,    -1,   312,    -1,  1122,    -1,    -1,
     628,   874,   629,    -1,   875,    -1,   874,   630,   875,    -1,
      -1,   521,   876,   877,   878,    -1,  1422,    -1,    -1,   879,
      -1,   879,   880,    -1,   880,    -1,   530,  1296,  1422,    -1,
    1337,   159,  1296,   899,    -1,    90,  1296,  1417,    -1,   348,
    1296,  1244,    -1,   307,  1296,  1246,    -1,   325,  1296,  1246,
      -1,   114,   137,  1296,  1417,    -1,   230,   137,  1296,  1417,
      -1,    82,  1296,  1417,    -1,    -1,    -1,   466,   882,  1108,
    1112,   883,   903,    -1,    -1,    19,    -1,    -1,   886,    -1,
     887,    -1,   886,   887,    -1,   898,    -1,   897,    -1,    -1,
     889,    -1,   890,    -1,   890,   889,    -1,   536,    -1,    -1,
     225,  1125,   172,    -1,    -1,   894,    -1,   895,    -1,   895,
     893,    -1,   895,    -1,   895,   894,    -1,   895,   630,   894,
      -1,   159,  1296,   899,    -1,   307,  1296,  1245,    -1,   325,
    1296,  1245,    -1,    27,  1296,  1243,    -1,   389,  1296,  1417,
      -1,    82,  1296,  1417,    -1,    26,  1296,  1245,    -1,   379,
    1296,  1243,    -1,   379,  1296,   128,    -1,    62,  1296,  1243,
      -1,   534,  1296,  1243,    -1,   381,  1296,  1249,    -1,   131,
    1296,  1243,    -1,   457,  1296,   901,    -1,    -1,   571,  1296,
     896,   628,  1358,   629,    -1,   897,    -1,   898,    -1,   238,
    1296,   902,    -1,   114,   137,  1296,  1417,    -1,   230,   137,
    1296,  1417,    -1,   530,  1420,    -1,   514,   140,    -1,   514,
     317,    -1,    90,  1296,  1417,    -1,   253,  1296,  1243,    -1,
     553,  1296,  1249,    -1,  1416,  1295,  1417,    -1,  1416,  1295,
    1420,    -1,  1416,  1295,  1246,    -1,  1416,  1295,   128,    -1,
     961,   952,  1296,   954,    -1,   961,    71,  1296,   960,    -1,
    1422,    -1,  1422,    -1,   128,    -1,   184,    -1,   149,    -1,
      87,    -1,   424,    -1,    85,    -1,   380,    -1,   353,    -1,
     183,    -1,   257,    -1,  1236,    -1,  1107,  1111,    -1,   516,
      -1,   419,    -1,   126,    -1,   242,    -1,   906,    -1,   907,
      -1,   906,   630,   907,    -1,   908,    -1,   909,    -1,   918,
     914,    -1,   918,   967,    -1,    -1,   973,   997,   982,   628,
     995,   629,   910,   983,    -1,    -1,   979,   976,   997,   981,
     628,   995,   629,   911,   984,    -1,    -1,   980,   976,   997,
     981,   628,   995,   629,   912,   985,    -1,    -1,   916,   974,
     997,   982,   628,   995,   629,   913,   983,    -1,   916,   189,
     254,   997,   628,   995,   629,   967,    -1,   916,   915,    -1,
      -1,   915,    -1,    63,   628,  1119,   629,    -1,    -1,   917,
      -1,    92,   997,    -1,    -1,  1412,   919,   920,    -1,   928,
     946,    -1,   928,   921,    19,   628,   927,   629,   922,   923,
      -1,    -1,   198,    14,    -1,    -1,   598,    -1,   390,    -1,
      -1,   924,    -1,   924,   925,    -1,   925,    -1,   572,    -1,
     572,   254,    -1,    82,  1417,    -1,   384,   628,   927,   629,
      -1,  1114,  1119,  1115,    -1,   936,   944,   940,    -1,   937,
     945,   940,    -1,   186,   938,   940,    -1,    39,    -1,    39,
     943,    -1,    44,    -1,    43,    -1,   932,   943,   964,    -1,
     932,   964,    -1,   933,   943,   965,    -1,   933,   965,    -1,
      34,   943,    -1,    34,    -1,   934,   943,   964,    -1,   935,
     943,   965,    -1,   590,   943,    -1,   616,   944,   940,    -1,
     118,    -1,   546,   944,    -1,   543,   944,    -1,   115,   944,
      -1,   547,    -1,    41,   944,    -1,   931,    -1,   313,    -1,
     280,    -1,   283,   590,    -1,   283,   934,   964,    -1,   549,
     964,    -1,   540,   944,   964,    -1,   315,   964,    -1,   281,
     964,    -1,   126,   938,   940,    -1,   358,   938,   940,    -1,
     184,   938,   940,    -1,    -1,   160,   929,   628,   999,   629,
     964,    -1,    -1,   474,   930,   628,   999,   629,   964,    -1,
     283,   964,    -1,   470,    -1,   200,    -1,   199,    -1,   394,
      -1,   333,    -1,   271,    -1,   332,    -1,   395,    -1,   334,
      -1,    60,    -1,   342,    -1,   339,    60,    -1,   932,   594,
      -1,   591,    -1,   339,   591,    -1,   359,    -1,   342,   591,
      -1,   339,    60,   594,    -1,   342,   594,    -1,   242,    -1,
     548,    -1,   486,    -1,   314,    -1,    33,    -1,   419,    -1,
     143,    -1,   143,   398,    -1,    -1,   943,    -1,   939,    -1,
     628,   357,   630,   357,   629,    -1,    -1,   941,    -1,   941,
     942,    -1,   942,    -1,   482,    -1,   575,    -1,   617,    -1,
     628,   282,   629,    -1,   628,   562,   629,    -1,   628,   125,
     629,    -1,   628,   357,   629,    -1,    -1,   943,    -1,    -1,
     939,    -1,    -1,   947,    -1,   947,   948,    -1,   948,    -1,
     356,    -1,  1125,   356,    -1,   128,   950,    -1,   362,   577,
     352,  1118,    -1,    26,    -1,   470,   128,   589,    -1,   966,
     254,    -1,   572,    -1,   572,   254,    -1,    82,  1417,    -1,
      71,   958,    -1,  1416,  1295,  1417,    -1,  1416,  1295,  1420,
      -1,  1416,  1295,  1246,    -1,  1416,  1295,   128,    -1,   928,
     959,    -1,   352,  1118,    -1,  1403,    -1,   213,    -1,   214,
      -1,    60,   474,    -1,    59,    -1,  1422,    -1,    34,    -1,
     953,    -1,   128,    -1,    -1,   952,   954,    -1,  1422,    -1,
      34,    -1,   956,    -1,   128,    -1,  1422,    -1,    -1,    71,
     960,    -1,   958,    -1,   128,    -1,    -1,   128,    -1,    21,
      -1,    34,    21,    -1,    21,    34,    -1,   569,    -1,   569,
      34,    -1,    34,   569,    -1,    -1,   962,    -1,   963,    -1,
      48,    -1,   952,   953,   965,    -1,    34,    -1,    34,   952,
     953,    -1,    -1,    34,    -1,    -1,   402,    -1,   425,  1413,
     968,   970,   971,    -1,    -1,   628,   969,   629,    -1,   969,
     630,  1420,    -1,  1420,    -1,    -1,   304,   193,    -1,   304,
     385,    -1,   304,   483,    -1,    -1,   362,   577,   972,    -1,
     362,   132,   972,    -1,   362,   577,   972,   362,   132,   972,
      -1,   362,   132,   972,   362,   577,   972,    -1,   447,    -1,
      51,    -1,   474,   356,    -1,   353,     5,    -1,   474,   128,
      -1,   975,    -1,   402,   254,    -1,   572,   976,    -1,   254,
      -1,   230,    -1,    -1,   975,    -1,   252,    -1,   230,    -1,
     229,    -1,    -1,   572,    -1,   194,    -1,   493,    -1,    -1,
     981,    -1,   981,   989,    -1,    -1,   986,    -1,    -1,   988,
      -1,    -1,   987,    -1,   991,    -1,   986,   991,    -1,   992,
      -1,   987,   992,    -1,   993,    -1,   988,   993,    -1,   584,
     994,    -1,   560,   994,    -1,   253,  1296,  1243,    -1,    82,
    1417,    -1,  1416,  1295,  1417,    -1,  1416,  1295,  1420,    -1,
    1416,  1295,  1246,    -1,  1416,  1295,   128,    -1,   990,    -1,
     989,    -1,   990,    -1,   990,    -1,   605,   383,  1416,    -1,
      46,    -1,   459,    -1,   210,    -1,   995,   630,   996,  1234,
      -1,   996,  1234,    -1,  1420,    -1,  1420,   628,   357,   629,
      -1,    -1,  1412,    -1,    -1,   636,  1420,    -1,  1401,    -1,
     999,   630,  1401,    -1,    -1,    13,  1035,   533,  1413,  1001,
    1012,    -1,    -1,    13,   111,  1011,  1002,   886,    -1,    13,
     111,  1420,   578,   114,   137,   338,    -1,    -1,    13,   404,
     686,  1003,   687,    -1,    -1,    13,   195,   686,  1004,   687,
      -1,    -1,    13,  1524,  1519,  1005,  1526,    -1,    -1,    13,
    1519,  1006,  1526,    -1,    -1,    13,  1519,   168,   686,  1007,
    1008,  1009,   676,   681,  1010,    -1,    13,   530,   786,    -1,
      13,   278,   205,   788,    -1,    13,   530,   783,    -1,    13,
     530,   782,    -1,    13,   472,  1422,   368,   628,   670,   629,
      -1,    -1,   362,   461,   674,    -1,   680,    -1,   362,   461,
     674,   680,    -1,    -1,   435,   550,   686,    -1,    -1,   144,
     682,    -1,    -1,  1420,    -1,    -1,   139,   530,    -1,   228,
     530,    -1,  1027,   832,    -1,  1027,  1016,    -1,  1016,    -1,
     833,    -1,  1018,    -1,   145,   388,  1025,    -1,   420,   388,
    1072,  1017,    -1,    -1,   367,   388,  1072,  1017,  1013,  1072,
      -1,    15,   388,  1072,  1017,    -1,    -1,    63,   388,  1017,
    1014,  1067,    -1,    -1,   437,   388,  1072,  1017,  1015,  1059,
      -1,    69,   388,  1072,  1244,    -1,   558,   388,  1017,    -1,
    1021,    -1,   434,   386,    -1,    12,    -1,  1025,    -1,    -1,
       6,   388,  1072,  1019,  1020,    -1,    -1,   628,   858,   629,
      -1,   387,  1244,    -1,    -1,   436,   388,  1072,  1022,  1023,
      -1,    -1,    -1,  1025,  1024,   241,   628,   858,   629,    -1,
    1026,    -1,  1025,   630,  1026,    -1,  1420,    -1,  1029,    -1,
    1027,   630,  1029,    -1,     6,  1033,    -1,  1028,   908,  1041,
      -1,     6,   909,    -1,  1028,   628,   905,   629,    -1,    -1,
      57,  1033,  1412,  1030,   918,  1041,    -1,    -1,    -1,   329,
    1033,  1412,  1031,   920,  1032,  1041,    -1,   145,  1033,  1412,
    1040,    -1,   145,   189,   254,   997,    -1,   145,   402,   254,
      -1,   145,   975,  1412,    -1,   138,   252,    -1,   153,   252,
      -1,    13,  1033,  1412,   474,   128,  1403,    -1,    13,  1033,
    1412,   145,   128,    -1,   435,  1042,  1413,    -1,   100,   550,
     952,   954,   959,    -1,   893,    -1,   188,    -1,  1227,    -1,
      -1,    80,    -1,    -1,   226,    -1,    -1,  1036,  1037,    -1,
      -1,  1038,    -1,  1038,  1039,    -1,  1039,    -1,   226,    -1,
     365,    -1,    -1,   447,    -1,    51,    -1,    -1,     8,  1420,
      -1,   183,    -1,    -1,   550,    -1,   161,    -1,    19,    -1,
      -1,   509,   484,  1048,  1044,  1052,    -1,   513,   484,  1048,
      -1,    -1,   484,   509,  1048,  1045,  1052,    -1,   484,   513,
    1048,    -1,   509,   552,  1047,    -1,    -1,   605,    91,   487,
      -1,    -1,  1049,  1050,    -1,  1051,    -1,  1050,   630,  1051,
      -1,    -1,   505,    -1,   431,    -1,    -1,   576,  1053,    -1,
     661,    -1,  1053,   630,   661,    -1,    -1,    62,  1445,  1055,
    1270,  1056,    -1,    -1,   413,    -1,   175,    -1,    -1,   437,
    1072,  1445,  1058,  1270,  1059,    -1,    -1,  1060,    -1,  1061,
      -1,  1061,  1060,    -1,   413,    -1,   175,    -1,   582,    -1,
      -1,    15,  1072,  1445,  1063,  1270,    -1,    35,  1417,    -1,
      -1,    63,  1445,  1066,  1270,  1067,    -1,    -1,  1068,    -1,
    1069,    -1,  1069,  1068,    -1,   413,    -1,   179,    -1,   316,
      -1,   175,    -1,    58,    -1,   190,   578,    -1,    -1,   367,
    1072,  1445,  1071,  1270,    -1,    -1,   355,    -1,   274,    -1,
      -1,   435,  1445,  1074,  1076,    -1,   435,   580,   685,  1075,
      -1,  1423,   550,  1423,    -1,  1075,   630,  1423,   550,  1423,
      -1,  1077,    -1,  1076,   630,  1077,    -1,  1413,   550,  1413,
      -1,    -1,    49,   230,  1079,  1080,   244,  1084,    -1,  1081,
      -1,  1083,    -1,  1082,    -1,  1081,   630,  1082,    -1,  1413,
    1093,    -1,  1413,  1091,  1093,    -1,  1420,    -1,   128,    -1,
      -1,   273,   230,   241,    49,  1086,  1087,    -1,  1090,    -1,
    1088,    -1,  1089,    -1,  1088,   630,  1089,    -1,  1413,  1093,
    1096,    -1,  1413,  1091,  1093,  1096,    -1,    -1,   388,   835,
    1092,   628,  1017,   629,    -1,    -1,  1094,  1095,    -1,    -1,
     975,   628,  1209,   629,    -1,    -1,   226,   261,    -1,  1098,
      -1,   466,  1101,    -1,   628,  1099,   629,  1501,    -1,   466,
    1103,    -1,   628,  1099,   629,    -1,   466,  1188,    -1,   628,
    1100,   629,    -1,    -1,  1103,  1102,  1498,    -1,    -1,    -1,
    1104,  1108,  1112,  1105,  1106,  1111,    -1,  1230,  1236,    -1,
    1259,    -1,  1107,    -1,  1259,  1107,    -1,  1107,  1259,    -1,
     192,  1170,  1219,  1224,  1221,  1230,  1236,  1250,    -1,   192,
     146,  1219,  1236,    -1,    -1,  1109,    -1,  1109,  1110,    -1,
    1110,    -1,  1515,    -1,   502,    -1,   500,    -1,    -1,   190,
     577,    -1,   277,   244,   476,   327,    -1,  1112,   630,  1113,
      -1,  1113,    -1,   623,    -1,  1114,  1407,  1115,    -1,  1114,
    1119,  1115,  1116,    -1,    -1,    -1,    -1,    19,  1420,    -1,
      19,  1417,    -1,  1420,    -1,  1417,    -1,    -1,   628,   629,
      -1,   628,  1244,   629,    -1,    -1,   628,   629,    -1,  1119,
    1123,  1119,    -1,  1119,   614,  1119,    -1,  1119,  1124,  1119,
      -1,   351,  1119,    -1,  1120,   247,   557,    -1,  1120,   247,
    1125,   557,    -1,  1120,   247,   178,    -1,  1120,   247,  1125,
     178,    -1,  1120,   247,   573,    -1,  1120,   247,  1125,   573,
      -1,  1120,    -1,  1120,   247,   356,    -1,  1120,   247,  1125,
     356,    -1,  1120,   162,  1121,    -1,  1120,  1127,  1121,    -1,
    1120,  1127,  1128,   628,  1510,   629,    -1,  1121,    -1,  1122,
     244,   628,  1510,   629,    -1,  1122,  1125,   244,   628,  1510,
     629,    -1,  1122,   244,   628,  1119,   629,    -1,  1122,   244,
     628,  1119,   630,  1163,   629,    -1,  1122,  1125,   244,   628,
    1119,   629,    -1,  1122,  1125,   244,   628,  1119,   630,  1163,
     629,    -1,  1122,    32,  1122,    17,  1121,    -1,  1122,  1125,
      32,  1122,    17,  1121,    -1,  1122,   491,   267,  1122,    -1,
    1122,   267,  1133,  1223,    -1,  1122,  1125,   267,  1133,  1223,
      -1,  1122,   426,  1122,    -1,  1122,  1125,   426,  1122,    -1,
    1122,    -1,  1122,   619,  1122,    -1,  1122,   620,  1122,    -1,
    1122,   477,  1122,    -1,  1122,   478,  1122,    -1,  1122,   622,
    1122,    -1,  1122,   621,  1122,    -1,  1122,   622,   240,  1119,
    1213,    -1,  1122,   621,   240,  1119,  1213,    -1,  1122,   623,
    1122,    -1,  1122,   624,  1122,    -1,  1122,   625,  1122,    -1,
    1122,   142,  1122,    -1,  1122,   330,  1122,    -1,  1122,   626,
    1122,    -1,  1133,    -1,   374,    -1,   371,    -1,    17,    -1,
      16,    -1,   351,    -1,   350,    -1,   631,    -1,   350,    -1,
     161,    -1,   196,    -1,   207,    -1,   259,    -1,   286,    -1,
     344,    -1,    12,    -1,    18,    -1,    -1,    19,  1130,    -1,
     242,    -1,   575,   242,    -1,   143,    -1,   419,    -1,   186,
      -1,   126,   938,    -1,   932,   964,    -1,   933,    -1,   118,
      -1,   546,   944,    -1,   115,   944,    -1,  1119,   630,  1119,
    1129,    -1,  1131,    -1,  1132,   630,  1131,    -1,  1409,    -1,
    1134,    -1,  1135,    -1,  1138,    -1,  1136,    -1,  1133,    71,
    1422,    -1,  1404,    -1,  1402,    -1,  1150,    -1,  1146,    -1,
    1133,   373,  1133,    -1,   622,  1133,    -1,   621,  1133,    -1,
     627,  1133,    -1,  1126,  1133,    -1,   628,  1510,   629,    -1,
     628,  1119,   629,    -1,   628,  1119,   630,  1163,   629,    -1,
     458,   628,  1119,   630,  1163,   629,    -1,   172,   628,  1510,
     629,    -1,   632,  1420,  1119,   633,    -1,   304,  1164,     9,
     628,  1122,  1140,   629,    -1,    34,  1133,    -1,    54,   628,
    1119,    19,  1160,   629,    -1,    53,  1166,  1168,  1167,   155,
      -1,   100,   628,  1119,   630,  1160,   629,    -1,   100,   628,
    1119,   584,   953,   629,    -1,   128,   628,  1409,   629,    -1,
     588,   628,  1410,   629,    -1,   240,  1119,  1213,   622,  1119,
      -1,    60,   628,  1163,   629,    -1,    60,   628,  1163,   584,
     953,   629,    -1,   107,  1118,    -1,   118,   628,  1119,   629,
      -1,   123,   628,  1119,   629,    -1,   221,   628,  1119,   629,
      -1,   237,   628,  1119,   630,  1119,   630,  1119,   630,  1119,
     629,    -1,   240,   628,  1119,   630,  1119,   629,    -1,   240,
     628,  1119,   630,  1119,   630,  1163,   629,    -1,   263,   628,
    1119,   630,  1119,   629,    -1,   324,   628,  1119,   629,    -1,
     331,   628,  1119,   629,    -1,   452,   628,  1119,   630,  1119,
     629,    -1,   464,   628,  1119,   629,    -1,   546,   628,  1119,
     629,    -1,   543,   628,  1119,   629,    -1,   543,   628,  1119,
     630,  1119,   629,    -1,   556,   628,  1119,   629,    -1,   556,
     628,   260,  1119,   192,  1119,   629,    -1,   556,   628,   551,
    1119,   192,  1119,   629,    -1,   556,   628,    45,  1119,   192,
    1119,   629,    -1,   556,   628,   260,   192,  1119,   629,    -1,
     556,   628,   551,   192,  1119,   629,    -1,   556,   628,    45,
     192,  1119,   629,    -1,   556,   628,  1119,   192,  1119,   629,
      -1,   580,   628,   629,    -1,   616,   628,  1119,   629,    -1,
       7,   628,  1119,   630,  1119,   629,    -1,     7,   628,  1119,
     630,   240,  1119,  1213,   629,    -1,   106,  1118,    -1,   110,
    1117,    -1,   116,   628,  1119,   630,   240,  1119,  1213,   629,
      -1,   117,   628,  1119,   630,   240,  1119,  1213,   629,    -1,
     177,   628,  1213,   192,  1119,   629,    -1,   201,   628,  1215,
     630,  1119,   629,    -1,   352,  1117,    -1,   397,   628,  1122,
     244,  1119,   629,    -1,   518,   628,  1119,   630,  1119,   629,
      -1,   518,   628,  1119,   630,   240,  1119,  1213,   629,    -1,
     522,   628,  1119,   630,  1119,   630,  1119,   629,    -1,   522,
     628,  1119,   630,  1119,   629,    -1,   522,   628,  1119,   192,
    1119,   190,  1119,   629,    -1,   522,   628,  1119,   192,  1119,
     629,    -1,   528,  1117,    -1,   544,   628,  1214,   630,  1119,
     630,  1119,   629,    -1,   545,   628,  1214,   630,  1119,   630,
    1119,   629,    -1,   585,  1118,    -1,   587,  1117,    -1,   586,
    1117,    -1,    74,   628,  1119,   630,  1132,   629,    -1,    76,
     628,  1119,   630,  1163,   629,    -1,    77,   628,  1119,   630,
    1119,   629,    -1,    79,   628,  1119,   629,    -1,    75,   628,
    1132,   629,    -1,    78,   628,  1119,   630,  1119,    19,  1160,
     629,    -1,    21,   628,  1119,   629,    -1,    59,   628,  1119,
     629,    -1,    69,   628,  1163,   629,    -1,    72,   628,  1119,
     629,    -1,   111,   628,   629,    -1,   225,   628,  1119,   630,
    1119,   630,  1119,   629,    -1,   258,   628,  1163,   629,    -1,
     320,   628,  1119,   629,    -1,   330,   628,  1119,   630,  1119,
     629,    -1,   361,   628,  1119,   629,    -1,   389,   628,  1119,
     629,    -1,   411,   628,  1119,   629,    -1,   439,   628,  1119,
     630,  1119,   629,    -1,   440,   628,  1119,   630,  1119,   630,
    1119,   629,    -1,   558,   628,  1119,   630,  1119,   629,    -1,
     601,   628,  1119,   629,    -1,   601,   628,  1119,   630,  1119,
     629,    -1,  1137,    -1,    96,   628,  1119,   630,  1119,   629,
      -1,   199,   628,  1163,   629,    -1,   271,   628,  1163,   629,
      -1,   332,   628,  1163,   629,    -1,   333,   628,  1163,   629,
      -1,   334,   628,  1163,   629,    -1,   394,   628,  1119,   630,
    1119,   629,    -1,   395,   628,  1163,   629,    -1,    -1,  1416,
     628,  1139,  1143,   629,    -1,  1420,   636,  1420,   628,  1162,
     629,    -1,  1141,  1142,    -1,   244,    43,   327,    -1,    -1,
     244,   340,   256,   327,    -1,    -1,   605,   412,   174,    -1,
      -1,  1144,    -1,  1145,    -1,  1144,   630,  1145,    -1,  1114,
    1119,  1115,  1116,    -1,    28,   628,  1158,   629,    -1,    28,
     628,   141,  1158,   629,    -1,    37,   628,  1158,   629,    -1,
      38,   628,  1158,   629,    -1,    40,   628,  1158,   629,    -1,
     101,   628,  1218,   623,   629,    -1,   101,   628,  1158,   629,
      -1,    -1,    -1,   101,   628,   141,  1147,  1163,  1148,   629,
      -1,   326,   628,  1158,   629,    -1,   326,   628,   141,  1158,
     629,    -1,   309,   628,  1158,   629,    -1,   309,   628,   141,
    1158,   629,    -1,   512,   628,  1158,   629,    -1,   593,   628,
    1158,   629,    -1,   511,   628,  1158,   629,    -1,   595,   628,
    1158,   629,    -1,   523,   628,  1158,   629,    -1,   523,   628,
     141,  1158,   629,    -1,    -1,   206,   628,  1153,  1149,  1163,
    1155,  1154,   629,    -1,    -1,   635,  1151,  1152,    -1,  1422,
     475,  1119,    -1,  1422,    -1,   635,  1435,  1422,   998,    -1,
      -1,   141,    -1,    -1,   468,  1401,    -1,    -1,    -1,   372,
      47,  1156,  1157,    -1,  1157,   630,  1408,  1234,    -1,  1408,
    1234,    -1,    -1,  1218,  1159,  1119,    -1,    34,   944,    -1,
      60,   944,   964,    -1,   342,   944,    -1,   242,    -1,   482,
      -1,   482,   242,    -1,   575,    -1,   575,   242,    -1,   118,
      -1,   546,   944,    -1,   115,   944,    -1,   126,   938,    -1,
      -1,   143,  1161,   945,    -1,    -1,  1163,    -1,  1119,    -1,
    1163,   630,  1119,    -1,  1165,    -1,   628,  1165,   629,    -1,
    1409,    -1,  1165,   630,  1409,    -1,    -1,  1119,    -1,    -1,
     151,  1119,    -1,   602,  1119,   542,  1119,    -1,  1168,   602,
    1119,   542,  1119,    -1,  1182,    -1,  1173,    -1,  1172,    -1,
    1169,    -1,   632,  1420,  1169,   633,    -1,  1171,    -1,  1172,
     630,  1171,    -1,  1169,  1181,  1169,    -1,  1169,   515,  1182,
      -1,    -1,  1169,  1181,  1169,   362,  1174,  1119,    -1,    -1,
    1169,   515,  1182,   362,  1175,  1119,    -1,    -1,  1169,  1181,
    1169,   584,  1176,   628,  1212,   629,    -1,  1169,   340,   251,
    1182,    -1,    -1,  1169,   263,  1198,   251,  1169,   362,  1177,
    1119,    -1,    -1,  1169,   263,  1198,   251,  1182,  1178,   584,
     628,  1212,   629,    -1,  1169,   340,   263,  1198,   251,  1182,
      -1,    -1,  1169,   452,  1198,   251,  1169,   362,  1179,  1119,
      -1,    -1,  1169,   452,  1198,   251,  1182,  1180,   584,   628,
    1212,   629,    -1,  1169,   340,   452,  1198,   251,  1182,    -1,
     251,    -1,   234,   251,    -1,   104,   251,    -1,    -1,  1183,
    1413,  1217,  1207,    -1,  1197,  1196,  1193,    -1,   628,  1196,
    1184,   629,  1217,    -1,  1191,  1502,    -1,    -1,    -1,  1184,
     571,  1506,  1185,  1507,  1186,  1502,    -1,  1188,    -1,    -1,
      -1,  1189,  1513,  1112,  1190,   903,  1111,    -1,    -1,  1196,
    1192,  1172,    -1,    -1,    -1,  1194,  1108,  1112,  1195,   903,
      -1,    -1,   466,    -1,    -1,   375,    -1,    -1,   190,   251,
      -1,   190,   372,    47,    -1,   190,   205,    47,    -1,   188,
      -1,   226,    -1,    -1,  1200,   975,  1199,  1202,   628,  1211,
     629,    -1,    -1,   583,   975,  1199,  1203,   628,  1209,   629,
      -1,  1201,    -1,  1204,  1201,    -1,    -1,    -1,  1206,  1204,
      -1,    -1,  1208,  1205,    -1,    -1,  1211,    -1,  1420,    -1,
     402,    -1,  1210,    -1,  1211,   630,  1210,    -1,  1420,    -1,
    1212,   630,  1420,    -1,  1214,    -1,   119,    -1,   120,    -1,
     121,    -1,   122,    -1,   218,    -1,   219,    -1,   220,    -1,
     322,    -1,   323,    -1,   463,    -1,   615,    -1,   123,    -1,
     601,    -1,   221,    -1,   324,    -1,   331,    -1,   411,    -1,
     464,    -1,   320,    -1,   616,    -1,   118,    -1,   546,    -1,
     115,    -1,   543,    -1,    -1,    19,    -1,   161,    -1,    -1,
    1216,  1420,    -1,    -1,    12,    -1,    -1,    -1,   603,  1220,
    1119,    -1,    -1,    -1,   211,  1222,  1119,    -1,   166,  1133,
      -1,    -1,    -1,   205,    47,  1225,  1226,    -1,  1225,   630,
    1408,  1234,    -1,  1408,  1234,    -1,    -1,   606,    -1,   607,
      -1,   372,    47,  1228,    -1,  1228,   630,  1229,    -1,  1229,
      -1,  1410,  1234,    -1,    -1,  1231,    -1,    -1,   372,    47,
    1232,  1233,    -1,  1233,   630,  1408,  1234,    -1,  1408,  1234,
      -1,    -1,    20,    -1,   133,    -1,    -1,  1237,    -1,    -1,
    1237,    -1,   268,  1238,    -1,   268,  1238,   456,   170,  1240,
      -1,   268,   456,   170,  1240,    -1,  1239,    -1,  1239,   630,
    1239,    -1,  1239,   360,  1239,    -1,  1420,    -1,  1402,    -1,
     562,    -1,   282,    -1,   357,    -1,  1239,    -1,    -1,   268,
    1239,    -1,   268,   456,   170,    -1,   268,  1239,   456,   170,
      -1,   357,    -1,   621,   357,    -1,   621,   282,    -1,   357,
      -1,   213,    -1,   282,    -1,   562,    -1,   125,    -1,   185,
      -1,   357,    -1,   213,    -1,   282,    -1,   562,    -1,  1247,
      -1,   357,    -1,   562,    -1,   282,    -1,   125,    -1,   185,
      -1,   357,    -1,   562,    -1,   213,    -1,   282,    -1,  1247,
      -1,  1248,    -1,   125,    -1,   185,    -1,  1243,    -1,   128,
      -1,    -1,    -1,   404,  1420,  1251,   628,  1252,   629,    -1,
      -1,  1253,    -1,  1253,   630,  1254,    -1,  1254,    -1,  1114,
    1119,  1115,    -1,    -1,  1256,  1257,    -1,  1257,   630,  1258,
      -1,  1258,    -1,   635,  1422,    -1,  1422,    -1,    -1,   241,
    1260,  1261,    -1,    -1,    -1,   376,  1419,  1262,   955,  1263,
    1385,  1388,    -1,   147,  1419,    -1,  1255,    -1,    -1,   144,
    1265,  1163,    -1,    -1,   145,  1275,  1445,  1274,  1267,  1270,
    1040,    -1,    -1,   145,   230,  1420,   362,  1413,  1268,    -1,
     145,   111,  1274,  1420,    -1,   145,   195,  1274,  1420,   636,
    1420,    -1,   145,   195,  1274,  1420,    -1,   145,   404,  1274,
     686,    -1,   145,   580,   685,  1475,    -1,    -1,   145,   597,
    1274,  1269,  1270,  1040,    -1,   145,   168,  1274,   686,    -1,
     145,   555,  1274,   686,    -1,   145,   530,   809,   820,   821,
      -1,   145,   278,   205,   810,   820,   821,    -1,   145,   472,
    1274,  1422,    -1,  1271,    -1,  1270,   630,  1271,    -1,  1413,
      -1,  1273,    -1,  1272,   630,  1273,    -1,  1414,    -1,    -1,
     225,   172,    -1,    -1,   536,    -1,    -1,    -1,   237,  1277,
    1282,  1034,  1284,  1278,  1286,  1302,    -1,    -1,    -1,   440,
    1280,  1283,  1284,  1281,  1286,    -1,    -1,   285,    -1,   130,
      -1,   215,    -1,  1311,    -1,   130,    -1,   241,  1285,    -1,
    1285,    -1,  1271,    -1,  1289,    -1,   628,   629,  1289,    -1,
     628,  1288,   629,  1289,    -1,    -1,   474,  1287,  1293,    -1,
    1288,   630,  1406,    -1,  1406,    -1,   588,  1292,    -1,   589,
    1292,    -1,    -1,   881,  1290,  1498,    -1,    -1,   628,   881,
     629,  1291,  1501,    -1,  1292,   630,  1297,    -1,  1297,    -1,
    1293,   630,  1294,    -1,  1294,    -1,  1410,  1295,  1301,    -1,
     161,    -1,   475,    -1,    -1,  1295,    -1,    -1,   628,  1298,
    1299,   629,    -1,    -1,  1300,    -1,  1300,   630,  1301,    -1,
    1301,    -1,  1119,    -1,   128,    -1,    -1,    -1,   362,   148,
    1303,   254,   577,  1309,    -1,    -1,    -1,   577,  1305,  1311,
    1034,  1170,   474,  1307,  1306,  1219,  1230,  1241,    -1,  1307,
     630,  1308,    -1,  1308,    -1,  1410,  1295,  1301,    -1,  1309,
     630,  1310,    -1,  1310,    -1,  1410,  1295,  1301,    -1,    -1,
     285,    -1,    -1,   132,  1313,  1321,  1314,    -1,    -1,   192,
    1413,  1315,  1219,  1230,  1241,    -1,    -1,  1318,  1316,   192,
    1170,  1219,    -1,    -1,   192,  1272,  1317,   584,  1170,  1219,
      -1,  1319,    -1,  1318,   630,  1319,    -1,  1420,  1320,    -1,
    1420,   636,  1420,  1320,    -1,    -1,   636,   623,    -1,    -1,
    1322,  1321,    -1,   413,    -1,   285,    -1,   226,    -1,    -1,
     558,  1325,  1324,  1271,    -1,    -1,   533,    -1,    -1,  1327,
      -1,  1328,    -1,  1327,   630,  1328,    -1,   102,    -1,   317,
      -1,    42,   245,    -1,    97,   527,    -1,   380,   180,    -1,
     246,    -1,   526,    -1,   492,    -1,    12,    -1,    -1,   190,
     412,   357,    -1,    -1,   479,  1331,  1332,    -1,   112,  1343,
      -1,  1339,   529,  1338,  1343,    -1,  1339,   554,  1338,  1343,
      -1,   167,  1338,  1343,    -1,   533,   510,  1338,  1343,    -1,
     366,   529,  1338,  1343,    -1,   392,    -1,   159,   900,  1335,
      -1,   159,    12,  1335,    -1,  1339,    73,  1340,  1413,  1338,
    1343,    -1,  1336,   279,    -1,   484,   217,    -1,    -1,    35,
     167,  1341,  1342,  1333,  1235,    -1,    -1,   428,   167,  1341,
    1342,  1334,  1235,    -1,   977,  1340,  1413,  1338,  1219,    -1,
    1337,   158,    -1,    24,    -1,    99,    -1,   403,    -1,   101,
     628,   623,   629,   600,    -1,   101,   628,   623,   629,   164,
      -1,   600,  1235,    -1,   164,  1235,    -1,   408,    -1,   407,
    1326,  1329,  1235,    -1,  1434,   510,  1343,    -1,  1339,   406,
      -1,  1434,   592,  1343,    -1,   952,  1343,    -1,    72,  1343,
      -1,   204,    -1,   204,   190,  1423,    -1,   103,   111,   891,
    1420,    -1,   103,   533,  1413,    -1,   103,   597,  1413,    -1,
     301,   510,    -1,   484,   510,    -1,    67,    -1,   581,    -1,
     532,    -1,   231,    -1,   103,   404,   686,    -1,   103,   195,
     686,    -1,   103,   555,   686,    -1,   404,   510,  1343,    -1,
     195,   510,  1343,    -1,   404,    70,   686,    -1,   195,    70,
     686,    -1,   103,   168,   686,    -1,   510,    -1,   335,    -1,
     279,    -1,   301,    -1,    34,    -1,    -1,   514,    -1,    -1,
    1340,  1420,    -1,    -1,   193,    -1,   192,    -1,   244,    -1,
      -1,   244,  1417,    -1,    -1,   192,  1245,    -1,    -1,   267,
    1417,    -1,   603,  1119,    -1,    -1,  1347,  1413,  1345,  1349,
      -1,    -1,  1347,  1348,  1346,  1097,    -1,   133,    -1,   134,
      -1,    -1,   175,    -1,   387,    -1,    -1,  1401,    -1,  1420,
      -1,    -1,   187,  1072,  1351,  1352,    -1,    -1,    -1,  1445,
    1353,  1358,  1354,  1355,    -1,  1356,    -1,    -1,   605,   417,
     277,  1359,    -1,  1356,   630,  1357,    -1,  1357,    -1,   163,
     279,    -1,   159,   279,    -1,   197,   279,    -1,   485,   279,
      -1,    34,   279,    -1,   427,   279,    -1,   412,    49,    -1,
     217,    -1,   403,    -1,   279,    -1,   510,    -1,   484,    -1,
      67,    -1,   581,    -1,   532,    -1,   231,    -1,   301,    -1,
     135,    -1,   445,    -1,    -1,  1270,    -1,    -1,    17,   138,
      61,    -1,    -1,   443,  1361,  1362,    -1,  1362,   630,  1363,
      -1,  1363,    -1,    -1,   484,  1364,  1365,    -1,   301,    -1,
     412,    49,    -1,    -1,    12,    -1,    -1,   410,  1367,  1368,
      -1,  1336,   279,  1369,    -1,   550,  1417,    -1,    30,  1119,
      -1,    -1,   255,  1371,  1372,  1373,  1374,    -1,    -1,   209,
      -1,   489,    -1,    -1,    90,    -1,   412,    -1,  1119,    -1,
     580,  1423,    -1,   583,  1420,    -1,    -1,    -1,    -1,    -1,
     273,  1381,  1377,  1383,  1382,   232,  1419,  1378,  1384,   241,
     533,  1413,  1379,   955,  1380,  1391,  1385,  1388,  1392,  1394,
    1397,    -1,   114,    -1,   613,    -1,    -1,   274,    -1,    -1,
      88,    -1,   285,    -1,    -1,   440,    -1,   226,    -1,    -1,
      73,  1386,    -1,  1386,  1387,    -1,  1387,    -1,   538,    47,
    1401,    -1,   370,   154,    47,  1401,    -1,   154,    47,  1401,
      -1,   165,    47,  1401,    -1,    -1,   270,  1389,    -1,  1389,
    1390,    -1,  1390,    -1,   538,    47,  1401,    -1,   507,    47,
    1401,    -1,    -1,   456,   223,    47,  1401,    -1,    -1,   226,
     357,  1393,    -1,   270,    -1,   456,    -1,    -1,   628,  1395,
     629,    -1,   628,   629,    -1,  1395,   630,  1396,    -1,  1396,
      -1,  1410,    -1,   635,  1422,    -1,    -1,   474,  1398,    -1,
    1398,   630,  1399,    -1,  1399,    -1,  1410,  1295,  1114,  1301,
    1115,    -1,   539,    -1,   341,    -1,   565,   539,    -1,  1400,
    1418,    -1,  1418,    -1,   213,    -1,   214,    -1,    36,    -1,
     382,    -1,  1404,    -1,   622,  1405,    -1,   621,  1405,    -1,
    1400,    -1,  1405,    -1,   356,    -1,   178,    -1,   557,    -1,
     213,    -1,   214,    -1,    36,    -1,   565,   951,    -1,   565,
      36,    -1,   118,  1400,    -1,   546,  1400,    -1,   543,  1400,
      -1,   357,    -1,   282,    -1,   562,    -1,   125,    -1,   185,
      -1,  1410,    -1,  1407,    -1,  1420,   636,   623,    -1,  1420,
     636,  1420,   636,   623,    -1,  1119,    -1,  1420,    -1,  1411,
      -1,  1420,    -1,  1411,    -1,  1420,   636,  1420,    -1,   636,
    1420,   636,  1420,    -1,  1420,   636,  1420,   636,  1420,    -1,
    1420,    -1,  1420,   636,  1420,   636,  1420,    -1,  1420,   636,
    1420,    -1,   636,  1420,    -1,  1420,    -1,  1420,   636,  1420,
      -1,   636,  1420,    -1,  1420,  1320,    -1,  1420,   636,  1420,
    1320,    -1,  1420,    -1,   222,    -1,   224,    -1,   539,    -1,
     539,    -1,   539,    -1,  1416,    -1,  1424,    -1,  1416,    -1,
    1425,    -1,  1420,    -1,  1417,    -1,   266,    -1,  1422,    -1,
    1422,   635,  1422,    -1,   107,  1118,    -1,  1425,    -1,    21,
      -1,    29,    -1,    31,    -1,    48,    -1,    49,    -1,    59,
      -1,    62,    -1,    61,    -1,    68,    -1,    74,    -1,    75,
      -1,    76,    -1,    77,    -1,    78,    -1,    79,    -1,    82,
      -1,    84,    -1,    96,    -1,   124,    -1,   144,    -1,   155,
      -1,   170,    -1,   171,    -1,   187,    -1,   208,    -1,   212,
      -1,   216,    -1,   239,    -1,   256,    -1,   353,    -1,   366,
      -1,   369,    -1,   368,    -1,   378,    -1,   383,    -1,   388,
      -1,   396,    -1,   399,    -1,   434,    -1,   437,    -1,   443,
      -1,   446,    -1,   453,    -1,   460,    -1,   465,    -1,   472,
      -1,   482,    -1,   488,    -1,   484,    -1,   490,    -1,   509,
      -1,   513,    -1,   558,    -1,   569,    -1,   570,    -1,   609,
      -1,   612,    -1,   578,    -1,     5,    -1,     7,    -1,     8,
      -1,     9,    -1,    10,    -1,    11,    -1,    14,    -1,    18,
      -1,    23,    -1,    24,    -1,    26,    -1,    25,    -1,    27,
      -1,    28,    -1,    35,    -1,    39,    -1,    42,    -1,    44,
      -1,    43,    -1,    46,    -1,    52,    -1,    55,    -1,    56,
      -1,    58,    -1,    64,    -1,    67,    -1,    66,    -1,    65,
      -1,    69,    -1,    70,    -1,    72,    -1,    81,    -1,    73,
      -1,    83,    -1,    85,    -1,    86,    -1,    87,    -1,    88,
      -1,    90,    -1,    91,    -1,    93,    -1,    95,    -1,    94,
      -1,    97,    -1,    99,    -1,   102,    -1,   105,    -1,   109,
      -1,   114,    -1,   113,    -1,   115,    -1,   118,    -1,   123,
      -1,   129,    -1,   131,    -1,   135,    -1,   137,    -1,   138,
      -1,   139,    -1,   140,    -1,   147,    -1,   148,    -1,   149,
      -1,   156,    -1,   160,    -1,   159,    -1,   158,    -1,   163,
      -1,   164,    -1,   166,    -1,   168,    -1,   167,    -1,   169,
      -1,   174,    -1,   175,    -1,   176,    -1,   180,    -1,   179,
      -1,   191,    -1,   153,    -1,   193,    -1,   182,    -1,   183,
      -1,   184,    -1,   197,    -1,   198,    -1,   200,    -1,   199,
      -1,   201,    -1,   204,    -1,   202,    -1,   210,    -1,   209,
      -1,   217,    -1,   221,    -1,   223,    -1,   227,    -1,   231,
      -1,   243,    -1,   228,    -1,   229,    -1,   233,    -1,   245,
      -1,   246,    -1,   248,    -1,   249,    -1,   238,    -1,   253,
      -1,   258,    -1,   257,    -1,   261,    -1,   264,    -1,   265,
      -1,   271,    -1,   272,    -1,   274,    -1,   276,    -1,   278,
      -1,   279,    -1,   307,    -1,   301,    -1,   303,    -1,   288,
      -1,   292,    -1,   289,    -1,   290,    -1,   302,    -1,   291,
      -1,   293,    -1,   287,    -1,   299,    -1,   295,    -1,   294,
      -1,   296,    -1,   297,    -1,   298,    -1,   305,    -1,   306,
      -1,   308,    -1,   310,    -1,   311,    -1,   316,    -1,   317,
      -1,   318,    -1,   319,    -1,   320,    -1,   321,    -1,   324,
      -1,   325,    -1,   329,    -1,   327,    -1,   331,    -1,   332,
      -1,   333,    -1,   334,    -1,   335,    -1,   336,    -1,   338,
      -1,   337,    -1,   339,    -1,   342,    -1,   343,    -1,   347,
      -1,   346,    -1,   354,    -1,   348,    -1,   349,    -1,   359,
      -1,   360,    -1,   361,    -1,   363,    -1,   364,    -1,   365,
      -1,   379,    -1,   380,    -1,   385,    -1,   386,    -1,   387,
      -1,   389,    -1,   390,    -1,   391,    -1,   393,    -1,   392,
      -1,   394,    -1,   395,    -1,   400,    -1,   401,    -1,   403,
      -1,   405,    -1,   406,    -1,   407,    -1,   408,    -1,   409,
      -1,   411,    -1,   412,    -1,   413,    -1,   416,    -1,   420,
      -1,   421,    -1,   423,    -1,   422,    -1,   424,    -1,   427,
      -1,   428,    -1,   429,    -1,   430,    -1,   431,    -1,   433,
      -1,   436,    -1,   438,    -1,   441,    -1,   445,    -1,   448,
      -1,   449,    -1,   454,    -1,   455,    -1,   456,    -1,   457,
      -1,   458,    -1,   459,    -1,   461,    -1,   462,    -1,   464,
      -1,   470,    -1,   469,    -1,   471,    -1,   483,    -1,   476,
      -1,   480,    -1,   485,    -1,   487,    -1,   489,    -1,   491,
      -1,   492,    -1,   500,    -1,   499,    -1,   502,    -1,   505,
      -1,   508,    -1,   510,    -1,   514,    -1,   516,    -1,   517,
      -1,   518,    -1,   519,    -1,   521,    -1,   520,    -1,   524,
      -1,   525,    -1,   526,    -1,   527,    -1,   535,    -1,   532,
      -1,   529,    -1,   534,    -1,   530,    -1,   536,    -1,   537,
      -1,   540,    -1,   541,    -1,   552,    -1,   553,    -1,   554,
      -1,   543,    -1,   544,    -1,   545,    -1,   546,    -1,   559,
      -1,   560,    -1,   561,    -1,   195,    -1,   563,    -1,   564,
      -1,   567,    -1,   566,    -1,   573,    -1,   576,    -1,   580,
      -1,   581,    -1,   582,    -1,   592,    -1,   597,    -1,   598,
      -1,   589,    -1,   600,    -1,   599,    -1,   601,    -1,   608,
      -1,   611,    -1,   613,    -1,   616,    -1,   596,    -1,    -1,
     474,  1428,  1427,  1429,    -1,    -1,   369,    -1,  1430,    -1,
    1429,   630,  1430,    -1,    -1,  1431,  1436,    -1,  1433,    -1,
     202,    -1,   274,    -1,   471,    -1,    -1,   363,    -1,    -1,
     202,    -1,   274,    -1,   471,    -1,    -1,   202,   636,    -1,
     274,   636,    -1,   471,   636,    -1,  1437,    -1,  1433,  1438,
      -1,  1432,  1439,  1295,  1442,    -1,  1432,   552,   248,   265,
    1440,    -1,   635,  1422,  1295,  1119,    -1,   635,   635,  1435,
    1439,  1295,  1442,    -1,   952,   957,    -1,   337,  1295,  1119,
      -1,   337,   954,   959,    -1,   389,  1295,  1441,    -1,   389,
     190,  1423,  1295,  1441,    -1,  1420,    -1,  1420,   636,  1420,
      -1,   128,   636,  1420,    -1,   417,   563,    -1,   417,    83,
      -1,   438,   417,    -1,   469,    -1,   539,    -1,   389,   628,
     539,   629,    -1,   361,   628,   539,   629,    -1,  1119,    -1,
     128,    -1,   362,    -1,    12,    -1,    34,    -1,    -1,   277,
    1445,  1444,  1446,    -1,   533,    -1,   529,    -1,  1447,    -1,
    1446,   630,  1447,    -1,  1413,  1217,  1448,    -1,   417,    -1,
     610,    -1,   610,    88,    -1,   285,   610,    -1,   417,   274,
      -1,    -1,   574,  1450,  1445,    -1,   208,  1413,   366,  1217,
      -1,   208,  1415,    68,    -1,    -1,   208,  1415,   417,  1452,
    1453,  1219,  1236,    -1,  1454,    -1,  1420,  1455,    -1,   183,
      -1,   347,    -1,   183,    -1,   347,    -1,   401,    -1,   257,
      -1,    -1,  1457,  1456,   628,  1300,   629,    -1,   161,    -1,
     196,    -1,   259,    -1,   207,    -1,   286,    -1,   451,   685,
    1459,    -1,  1463,   362,  1462,  1474,   192,  1475,    -1,  1463,
     362,   195,  1474,   192,  1475,    -1,  1463,   362,   404,  1474,
     192,  1475,    -1,    12,  1464,   630,   203,   369,   192,  1475,
      -1,   409,   362,  1423,   192,  1475,    -1,   203,   685,  1461,
      -1,  1463,   362,  1462,  1474,   550,  1476,  1483,  1484,    -1,
    1463,   362,   195,  1474,   550,  1476,  1483,  1484,    -1,  1463,
     362,   404,  1474,   550,  1476,  1483,  1484,    -1,   409,   362,
    1423,   550,  1476,  1485,    -1,    -1,   533,    -1,  1465,    -1,
      12,  1464,    -1,    -1,   403,    -1,  1466,    -1,  1465,   630,
    1466,    -1,    -1,   466,  1467,  1480,    -1,    -1,   237,  1468,
    1480,    -1,    -1,   577,  1469,  1480,    -1,    -1,   425,  1470,
    1480,    -1,   132,    -1,   579,    -1,   230,    -1,    13,    -1,
     103,    -1,   145,    -1,   171,    -1,   433,    -1,   480,    -1,
     405,    -1,   182,    -1,   203,   369,    -1,   479,   112,    -1,
     524,    -1,   103,   536,   529,    -1,   277,   529,    -1,   441,
     484,    -1,   441,    66,    -1,   103,   597,    -1,   479,   597,
      -1,   103,   455,    -1,    13,   455,    -1,   103,   580,    -1,
     168,    -1,   555,    -1,   103,   530,    -1,    -1,    17,    -1,
    1473,  1471,  1472,    -1,  1473,    -1,   519,   539,    -1,   249,
     539,    -1,    64,   539,    -1,   623,    -1,  1420,   636,   623,
      -1,   623,   636,   623,    -1,  1413,    -1,  1423,    -1,  1475,
     630,  1423,    -1,  1479,    -1,  1476,   630,  1479,    -1,   596,
      -1,   605,    -1,   584,    -1,    19,    -1,  1423,   223,    47,
     539,    -1,  1423,   223,    47,   389,   539,    -1,  1423,   223,
    1477,  1422,    -1,  1423,   223,  1477,  1422,  1478,  1417,    -1,
    1423,    -1,    -1,   628,  1481,   629,    -1,  1481,   630,  1482,
      -1,  1482,    -1,  1420,    -1,    -1,   442,  1472,    -1,   442,
     506,    -1,   442,   611,    -1,   442,   349,    -1,    -1,   605,
    1486,    -1,    -1,   605,   203,   369,    -1,  1486,  1487,    -1,
    1487,    -1,   203,   369,    -1,   306,  1243,    -1,   310,  1243,
      -1,   305,  1243,    -1,   311,  1242,    -1,    -1,    31,  1489,
    1490,    -1,    -1,   608,    -1,    -1,    17,   353,    56,    -1,
      17,    56,    -1,    -1,   432,    -1,   353,   432,    -1,    -1,
     460,    -1,    84,  1490,  1491,  1492,    -1,   453,  1490,  1491,
    1492,    -1,   453,  1490,   550,  1493,  1420,    -1,   460,  1420,
      -1,   432,   460,  1420,    -1,    -1,  1499,    -1,    -1,   571,
    1506,  1500,  1098,    -1,    -1,  1499,    -1,  1503,    -1,    -1,
    1503,    -1,    -1,  1504,  1505,    -1,  1231,  1235,    -1,  1237,
      -1,    -1,   141,    -1,    12,    -1,   466,  1187,    -1,   628,
    1100,   629,    -1,  1507,  1502,    -1,    -1,  1508,   571,  1506,
    1509,  1507,  1502,    -1,  1511,  1508,  1512,    -1,    -1,    -1,
      -1,  1514,    -1,  1514,  1515,    -1,  1515,    -1,   515,    -1,
     215,    -1,   141,    -1,   503,    -1,   498,    -1,   499,    -1,
     501,    -1,    12,    -1,  1521,  1517,    -1,  1520,  1518,    -1,
    1522,  1519,  1526,    -1,  1526,    -1,  1534,    -1,  1545,    -1,
    1539,    -1,   672,    -1,  1526,    -1,  1534,    -1,  1545,    -1,
    1539,    -1,  1538,    -1,   672,    -1,  1520,    -1,  1521,    -1,
      -1,   129,   161,  1423,    -1,  1523,    -1,  1523,  1524,    -1,
    1524,    -1,   374,   440,    -1,    11,   161,   564,    -1,    11,
     161,   318,    -1,    11,   161,   537,    -1,    -1,   504,   465,
     129,    -1,   504,   465,   243,    -1,    -1,  1525,   597,  1413,
    1527,  1528,    19,  1530,    -1,    -1,   628,  1529,   629,    -1,
    1420,    -1,  1529,   630,  1420,    -1,    -1,  1531,  1532,  1533,
      -1,   466,  1101,    -1,   628,  1099,   629,  1501,    -1,    -1,
     605,    63,   369,    -1,   605,    52,    63,   369,    -1,   605,
     274,    63,   369,    -1,    -1,    -1,    -1,   555,  1114,   686,
     780,   781,   362,  1114,  1535,  1413,   190,  1114,  1536,   150,
     458,  1537,   730,    -1,    10,  1114,   195,  1420,   449,   904,
     490,  1417,    -1,  1114,   195,  1420,   449,   904,   490,  1417,
      -1,    -1,    -1,    -1,    -1,    -1,  1114,   195,   686,   628,
    1540,   697,   629,  1541,   449,  1542,   949,  1543,   688,  1544,
     730,    -1,    -1,    -1,    -1,    -1,   404,  1114,   686,  1546,
     628,  1547,   701,   629,  1548,   688,  1549,   730,    -1,   612,
    1552,  1551,  1553,    -1,   612,   155,  1551,  1555,    -1,   612,
     399,  1551,    -1,   612,    84,  1551,  1554,    -1,   612,   453,
    1551,    -1,   612,   421,    -1,  1401,    -1,  1401,   630,  1401,
      -1,  1401,   630,  1401,   630,  1243,    -1,    31,    -1,   509,
      -1,    -1,   251,    -1,   448,    -1,    -1,   364,   391,    -1,
      -1,    -1,   525,  1556,  1557,    -1,    -1,   190,   321,    -1,
     239,   393,  1420,   490,  1417,    -1,   239,   490,  1417,    -1,
     570,   393,  1420,    -1,   570,   490,  1417,    -1,   618,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,  1699,  1699,  1711,  1710,  1735,  1742,  1744,  1748,  1749,
    1754,  1755,  1756,  1757,  1758,  1759,  1760,  1761,  1762,  1763,
    1764,  1765,  1766,  1767,  1768,  1769,  1770,  1771,  1772,  1773,
    1774,  1775,  1776,  1777,  1778,  1779,  1780,  1781,  1782,  1783,
    1784,  1785,  1786,  1787,  1788,  1789,  1790,  1791,  1792,  1793,
    1794,  1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,  1803,
    1804,  1805,  1806,  1810,  1819,  1820,  1824,  1833,  1839,  1849,
    1848,  1858,  1860,  1864,  1865,  1869,  1882,  1881,  1901,  1900,
    1909,  1910,  1914,  1918,  1922,  1926,  1930,  1934,  1939,  1943,
    1947,  1951,  1955,  1959,  1965,  1996,  2001,  2004,  2006,  2007,
    2011,  2017,  2021,  2037,  2041,  2053,  2052,  2093,  2092,  2104,
    2102,  2115,  2113,  2125,  2124,  2137,  2136,  2144,  2148,  2152,
    2156,  2163,  2176,  2177,  2181,  2185,  2189,  2193,  2197,  2201,
    2205,  2213,  2212,  2243,  2242,  2249,  2256,  2257,  2263,  2269,
    2279,  2285,  2291,  2293,  2300,  2301,  2305,  2311,  2320,  2321,
    2329,  2329,  2385,  2386,  2387,  2388,  2389,  2390,  2391,  2392,
    2393,  2394,  2395,  2396,  2397,  2402,  2416,  2432,  2450,  2451,
    2455,  2456,  2461,  2463,  2465,  2467,  2469,  2471,  2473,  2479,
    2480,  2481,  2485,  2489,  2497,  2496,  2509,  2511,  2514,  2516,
    2520,  2524,  2531,  2533,  2537,  2538,  2543,  2563,  2589,  2591,
    2595,  2596,  2600,  2626,  2627,  2628,  2629,  2633,  2634,  2638,
    2639,  2644,  2647,  2674,  2673,  2737,  2753,  2752,  2806,  2832,
    2832,  2855,  2856,  2861,  2863,  2868,  2891,  2904,  2908,  2925,
    2926,  2930,  2934,  2943,  2950,  2957,  2967,  2981,  3004,  3010,
    3011,  3017,  3020,  3024,  3032,  3052,  3054,  3072,  3078,  3080,
    3082,  3084,  3086,  3088,  3090,  3092,  3094,  3096,  3098,  3100,
    3105,  3119,  3134,  3152,  3153,  3157,  3158,  3159,  3160,  3161,
    3162,  3163,  3164,  3165,  3166,  3167,  3168,  3169,  3174,  3173,
    3180,  3180,  3235,  3234,  3263,  3263,  3277,  3330,  3373,  3394,
    3393,  3415,  3434,  3436,  3437,  3441,  3461,  3484,  3486,  3502,
    3484,  3521,  3523,  3524,  3528,  3529,  3534,  3540,  3533,  3561,
    3560,  3576,  3577,  3581,  3582,  3587,  3591,  3586,  3612,  3616,
    3611,  3635,  3645,  3650,  3649,  3685,  3686,  3691,  3690,  3723,
    3723,  3738,  3737,  3773,  3785,  3787,  3784,  3814,  3813,  3834,
    3836,  3841,  3843,  3845,  3862,  3867,  3873,  3880,  3881,  3889,
    3895,  3904,  3910,  3916,  3917,  3921,  3921,  3926,  3927,  3928,
    3932,  3933,  3934,  3938,  3942,  3943,  3944,  3948,  3949,  3950,
    3951,  3952,  3953,  3954,  3955,  3959,  3963,  3964,  3965,  3969,
    3970,  3971,  3972,  3973,  3977,  3981,  3982,  3983,  3987,  3988,
    3989,  3990,  3991,  3992,  3993,  3997,  4001,  4002,  4003,  4007,
    4008,  4009,  4014,  4022,  4030,  4038,  4050,  4062,  4067,  4072,
    4080,  4088,  4096,  4104,  4112,  4120,  4128,  4141,  4154,  4167,
    4169,  4173,  4178,  4191,  4192,  4243,  4244,  4247,  4261,  4279,
    4278,  4287,  4285,  4292,  4294,  4293,  4297,  4296,  4302,  4339,
    4340,  4345,  4344,  4363,  4382,  4381,  4398,  4402,  4410,  4409,
    4412,  4414,  4416,  4418,  4423,  4424,  4430,  4431,  4448,  4449,
    4453,  4454,  4458,  4477,  4487,  4498,  4507,  4508,  4524,  4526,
    4525,  4530,  4528,  4539,  4540,  4544,  4562,  4578,  4579,  4595,
    4610,  4632,  4633,  4638,  4637,  4661,  4671,  4693,  4692,  4710,
    4709,  4729,  4751,  4755,  4784,  4796,  4797,  4802,  4813,  4801,
    4838,  4839,  4843,  4856,  4877,  4890,  4916,  4917,  4922,  4921,
    4958,  4963,  4964,  4968,  4969,  4973,  4975,  4981,  4987,  4989,
    4991,  4993,  4995,  4997,  5007,  5022,  5006,  5036,  5037,  5041,
    5042,  5046,  5047,  5051,  5052,  5056,  5057,  5061,  5062,  5066,
    5070,  5071,  5074,  5076,  5080,  5081,  5085,  5086,  5087,  5091,
    5096,  5101,  5106,  5111,  5116,  5121,  5126,  5141,  5147,  5152,
    5157,  5162,  5167,  5173,  5172,  5198,  5199,  5200,  5205,  5210,
    5215,  5217,  5219,  5221,  5227,  5232,  5237,  5243,  5249,  5255,
    5264,  5282,  5299,  5322,  5336,  5337,  5338,  5339,  5340,  5341,
    5342,  5346,  5347,  5348,  5352,  5353,  5357,  5358,  5359,  5360,
    5365,  5372,  5373,  5377,  5378,  5382,  5383,  5391,  5390,  5399,
    5397,  5407,  5405,  5415,  5413,  5421,  5440,  5446,  5448,  5452,
    5456,  5457,  5461,  5466,  5465,  5491,  5492,  5501,  5503,  5508,
    5511,  5515,  5522,  5523,  5527,  5528,  5532,  5538,  5544,  5548,
    5564,  5580,  5581,  5582,  5583,  5588,  5592,  5597,  5602,  5606,
    5611,  5616,  5622,  5627,  5633,  5637,  5642,  5647,  5665,  5667,
    5669,  5682,  5684,  5689,  5694,  5706,  5711,  5716,  5721,  5723,
    5725,  5727,  5729,  5731,  5733,  5735,  5738,  5737,  5742,  5741,
    5745,  5747,  5756,  5757,  5758,  5763,  5764,  5765,  5766,  5767,
    5771,  5775,  5776,  5780,  5781,  5785,  5786,  5787,  5788,  5789,
    5793,  5794,  5795,  5796,  5797,  5801,  5806,  5808,  5814,  5815,
    5817,  5822,  5831,  5832,  5836,  5837,  5841,  5842,  5843,  5847,
    5848,  5849,  5850,  5853,  5854,  5858,  5859,  5863,  5864,  5868,
    5869,  5873,  5874,  5875,  5876,  5883,  5884,  5890,  5896,  5902,
    5908,  5909,  5922,  5928,  5934,  5940,  5949,  5970,  5976,  5981,
    5982,  5986,  5987,  5991,  5999,  6003,  6004,  6008,  6009,  6013,
    6022,  6026,  6027,  6031,  6042,  6043,  6047,  6048,  6052,  6053,
    6058,  6059,  6063,  6070,  6079,  6087,  6098,  6099,  6100,  6101,
    6102,  6103,  6108,  6116,  6117,  6121,  6123,  6127,  6139,  6140,
    6144,  6151,  6164,  6165,  6167,  6169,  6175,  6180,  6186,  6192,
    6199,  6209,  6210,  6211,  6212,  6213,  6217,  6221,  6222,  6226,
    6227,  6231,  6232,  6236,  6237,  6238,  6242,  6243,  6247,  6251,
    6264,  6276,  6277,  6281,  6282,  6286,  6287,  6291,  6292,  6296,
    6297,  6301,  6302,  6306,  6307,  6311,  6312,  6316,  6318,  6319,
    6325,  6331,  6337,  6345,  6346,  6350,  6354,  6355,  6368,  6369,
    6370,  6374,  6375,  6379,  6385,  6399,  6400,  6404,  6405,  6409,
    6410,  6418,  6417,  6454,  6453,  6467,  6479,  6478,  6497,  6496,
    6515,  6514,  6533,  6527,  6547,  6546,  6579,  6584,  6589,  6594,
    6599,  6609,  6610,  6611,  6612,  6616,  6617,  6629,  6630,  6634,
    6635,  6638,  6640,  6641,  6642,  6644,  6646,  6647,  6656,  6657,
    6661,  6670,  6668,  6681,  6694,  6693,  6706,  6704,  6717,  6724,
    6734,  6738,  6745,  6749,  6754,  6753,  6769,  6771,  6776,  6784,
    6783,  6799,  6803,  6802,  6814,  6815,  6819,  6834,  6835,  6839,
    6848,  6852,  6857,  6862,  6861,  6873,  6884,  6872,  6900,  6909,
    6913,  6922,  6931,  6937,  6943,  6952,  6961,  6980,  7000,  7010,
    7014,  7022,  7023,  7027,  7028,  7032,  7032,  7035,  7037,  7041,
    7042,  7046,  7047,  7051,  7052,  7053,  7057,  7058,  7059,  7063,
    7064,  7065,  7066,  7075,  7074,  7083,  7091,  7090,  7098,  7107,
    7116,  7117,  7124,  7124,  7130,  7131,  7135,  7136,  7137,  7141,
    7142,  7158,  7159,  7164,  7163,  7175,  7176,  7177,  7182,  7181,
    7202,  7203,  7207,  7208,  7212,  7213,  7214,  7219,  7218,  7239,
    7248,  7247,  7273,  7274,  7278,  7279,  7283,  7284,  7285,  7286,
    7287,  7288,  7293,  7292,  7313,  7314,  7315,  7320,  7319,  7325,
    7332,  7337,  7345,  7346,  7350,  7364,  7363,  7376,  7377,  7381,
    7382,  7386,  7396,  7406,  7407,  7412,  7411,  7422,  7423,  7427,
    7428,  7432,  7442,  7453,  7452,  7460,  7460,  7469,  7470,  7475,
    7476,  7485,  7494,  7495,  7499,  7504,  7509,  7514,  7519,  7518,
    7538,  7546,  7538,  7553,  7554,  7555,  7556,  7557,  7561,  7568,
    7575,  7577,  7588,  7589,  7593,  7594,  7622,  7652,  7654,  7660,
    7670,  7671,  7672,  7686,  7691,  7716,  7722,  7728,  7729,  7730,
    7731,  7732,  7736,  7737,  7738,  7742,  7743,  7748,  7799,  7806,
    7849,  7855,  7861,  7867,  7873,  7879,  7885,  7891,  7895,  7901,
    7907,  7913,  7919,  7925,  7929,  7935,  7944,  7950,  7958,  7964,
    7974,  7980,  7989,  7999,  8005,  8015,  8021,  8030,  8034,  8040,
    8046,  8052,  8058,  8064,  8070,  8076,  8082,  8088,  8094,  8100,
    8106,  8112,  8118,  8122,  8123,  8127,  8128,  8132,  8133,  8137,
    8138,  8142,  8143,  8144,  8145,  8146,  8147,  8151,  8152,  8157,
    8163,  8167,  8174,  8181,  8188,  8195,  8202,  8207,  8213,  8220,
    8227,  8235,  8246,  8268,  8275,  8283,  8284,  8285,  8286,  8287,
    8288,  8299,  8300,  8301,  8302,  8303,  8309,  8313,  8319,  8325,
    8331,  8337,  8339,  8346,  8353,  8359,  8361,  8370,  8377,  8385,
    8391,  8398,  8404,  8418,  8425,  8441,  8447,  8453,  8461,  8467,
    8473,  8479,  8485,  8499,  8510,  8516,  8522,  8528,  8534,  8540,
    8546,  8552,  8558,  8564,  8570,  8576,  8582,  8588,  8594,  8600,
    8606,  8614,  8635,  8642,  8648,  8655,  8662,  8669,  8676,  8682,
    8688,  8695,  8701,  8708,  8714,  8720,  8726,  8732,  8738,  8756,
    8762,  8768,  8775,  8782,  8790,  8797,  8804,  8811,  8818,  8825,
    8842,  8848,  8854,  8860,  8866,  8873,  8879,  8885,  8891,  8897,
    8903,  8914,  8920,  8926,  8932,  8938,  8949,  8955,  8971,  8977,
    8984,  8991,  8998,  9005,  9012,  9016,  9036,  9035,  9107,  9148,
    9150,  9155,  9156,  9160,  9161,  9165,  9166,  9170,  9177,  9185,
    9211,  9217,  9223,  9229,  9235,  9241,  9250,  9257,  9259,  9256,
    9266,  9277,  9283,  9289,  9295,  9301,  9307,  9313,  9319,  9325,
    9332,  9331,  9351,  9350,  9365,  9375,  9383,  9399,  9400,  9405,
    9410,  9413,  9416,  9415,  9432,  9434,  9440,  9439,  9456,  9458,
    9460,  9462,  9464,  9466,  9468,  9470,  9472,  9474,  9480,  9486,
    9489,  9488,  9494,  9495,  9499,  9506,  9514,  9515,  9519,  9526,
    9534,  9535,  9539,  9540,  9544,  9552,  9563,  9564,  9576,  9587,
    9588,  9594,  9595,  9615,  9617,  9621,  9619,  9636,  9634,  9652,
    9650,  9657,  9666,  9664,  9682,  9681,  9691,  9702,  9700,  9719,
    9718,  9729,  9740,  9741,  9742,  9754,  9754,  9768,  9808,  9884,
    9895,  9900,  9892,  9919,  9939,  9947,  9939,  9956,  9955,  9978,
    9995,  9978, 10002, 10006, 10032, 10033, 10038, 10041, 10042, 10043,
   10047, 10048, 10053, 10052, 10058, 10057, 10065, 10066, 10069, 10071,
   10071, 10075, 10075, 10080, 10081, 10085, 10087, 10092, 10093, 10097,
   10108, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129,
   10130, 10131, 10132, 10136, 10137, 10138, 10139, 10140, 10141, 10142,
   10143, 10144, 10148, 10149, 10150, 10151, 10154, 10156, 10157, 10161,
   10162, 10170, 10172, 10176, 10178, 10177, 10191, 10194, 10193, 10208,
   10214, 10228, 10230, 10234, 10236, 10241, 10242, 10262, 10287, 10291,
   10292, 10296, 10308, 10310, 10315, 10314, 10349, 10351, 10356, 10357,
   10358, 10363, 10370, 10374, 10375, 10379, 10383, 10387, 10394, 10401,
   10408, 10418, 10451, 10455, 10461, 10467, 10476, 10484, 10488, 10495,
   10496, 10500, 10501, 10502, 10506, 10507, 10508, 10509, 10510, 10511,
   10515, 10516, 10517, 10518, 10519, 10523, 10524, 10525, 10526, 10527,
   10531, 10532, 10533, 10534, 10535, 10539, 10544, 10545, 10549, 10550,
   10553, 10556, 10555, 10586, 10587, 10591, 10592, 10596, 10606, 10606,
   10616, 10617, 10621, 10640, 10673, 10672, 10685, 10693, 10684, 10695,
   10707, 10719, 10718, 10736, 10735, 10746, 10746, 10762, 10769, 10791,
   10811, 10823, 10828, 10827, 10837, 10843, 10850, 10855, 10860, 10870,
   10871, 10875, 10886, 10887, 10891, 10902, 10903, 10907, 10908, 10916,
   10924, 10915, 10934, 10941, 10933, 10951, 10959, 10960, 10968, 10972,
   10973, 10984, 10985, 10989, 10998, 10999, 11000, 11002, 11001, 11012,
   11013, 11017, 11018, 11020, 11019, 11023, 11022, 11028, 11029, 11033,
   11034, 11038, 11048, 11049, 11053, 11054, 11059, 11058, 11072, 11073,
   11077, 11082, 11090, 11091, 11099, 11101, 11101, 11109, 11117, 11108,
   11139, 11140, 11144, 11152, 11153, 11157, 11167, 11168, 11175, 11174,
   11190, 11189, 11201, 11200, 11212, 11211, 11225, 11226, 11230, 11243,
   11259, 11260, 11264, 11265, 11269, 11270, 11271, 11276, 11275, 11296,
   11298, 11301, 11303, 11306, 11307, 11310, 11314, 11318, 11322, 11326,
   11330, 11334, 11338, 11342, 11350, 11353, 11363, 11362, 11377, 11384,
   11392, 11400, 11408, 11416, 11424, 11431, 11433, 11435, 11444, 11448,
   11453, 11452, 11458, 11457, 11462, 11471, 11478, 11487, 11496, 11501,
   11503, 11505, 11507, 11509, 11511, 11518, 11526, 11528, 11536, 11543,
   11550, 11560, 11567, 11573, 11582, 11590, 11594, 11598, 11605, 11612,
   11619, 11626, 11633, 11640, 11646, 11653, 11660, 11665, 11670, 11678,
   11680, 11682, 11687, 11688, 11691, 11693, 11697, 11698, 11702, 11703,
   11707, 11708, 11712, 11713, 11717, 11718, 11721, 11723, 11730, 11741,
   11740, 11756, 11755, 11765, 11766, 11770, 11771, 11772, 11776, 11777,
   11778, 11793, 11792, 11805, 11814, 11804, 11816, 11820, 11821, 11835,
   11836, 11841, 11843, 11845, 11847, 11849, 11851, 11853, 11855, 11857,
   11859, 11861, 11863, 11868, 11870, 11872, 11874, 11876, 11878, 11880,
   11885, 11886, 11890, 11891, 11895, 11894, 11904, 11905, 11909, 11909,
   11911, 11912, 11916, 11917, 11922, 11921, 11932, 11936, 11940, 11953,
   11952, 11966, 11967, 11968, 11971, 11972, 11973, 11977, 11982, 11992,
   12004, 12015, 12025, 12035, 12003, 12043, 12044, 12048, 12049, 12053,
   12054, 12062, 12066, 12067, 12068, 12071, 12073, 12077, 12078, 12082,
   12087, 12094, 12099, 12106, 12108, 12112, 12113, 12117, 12122, 12130,
   12131, 12134, 12136, 12144, 12146, 12150, 12151, 12152, 12156, 12158,
   12163, 12164, 12173, 12174, 12178, 12179, 12183, 12196, 12219, 12231,
   12242, 12261, 12269, 12281, 12289, 12304, 12324, 12325, 12326, 12334,
   12335, 12336, 12343, 12349, 12355, 12361, 12367, 12373, 12402, 12430,
   12431, 12432, 12436, 12446, 12456, 12462, 12471, 12486, 12487, 12491,
   12500, 12515, 12519, 12565, 12569, 12586, 12590, 12668, 12692, 12722,
   12723, 12739, 12749, 12753, 12759, 12765, 12775, 12781, 12790, 12800,
   12801, 12829, 12843, 12857, 12872, 12873, 12883, 12884, 12894, 12895,
   12896, 12900, 12916, 12937, 12952, 12953, 12954, 12955, 12956, 12957,
   12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967,
   12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977,
   12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987,
   12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997,
   12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007,
   13008, 13009, 13010, 13020, 13021, 13022, 13023, 13024, 13025, 13026,
   13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036,
   13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046,
   13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056,
   13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066,
   13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076,
   13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086,
   13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096,
   13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106,
   13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116,
   13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126,
   13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136,
   13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146,
   13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156,
   13157, 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166,
   13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176,
   13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185, 13186,
   13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196,
   13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206,
   13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216,
   13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226,
   13227, 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236,
   13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, 13245, 13246,
   13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256,
   13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266,
   13267, 13268, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276,
   13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286,
   13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296,
   13297, 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306,
   13307, 13308, 13309, 13310, 13311, 13318, 13317, 13332, 13333, 13337,
   13338, 13342, 13342, 13422, 13423, 13424, 13425, 13429, 13430, 13434,
   13435, 13436, 13437, 13441, 13442, 13443, 13444, 13448, 13449, 13453,
   13494, 13512, 13523, 13535, 13548, 13563, 13582, 13608, 13621, 13647,
   13690, 13704, 13705, 13706, 13707, 13711, 13712, 13721, 13733, 13734,
   13735, 13741, 13747, 13759, 13758, 13774, 13775, 13779, 13780, 13784,
   13799, 13800, 13801, 13806, 13807, 13812, 13811, 13831, 13843, 13856,
   13855, 13889, 13890, 13894, 13895, 13899, 13900, 13901, 13902, 13904,
   13903, 13916, 13917, 13918, 13919, 13920, 13926, 13931, 13937, 13948,
   13959, 13963, 13973, 13978, 13985, 13997, 14009, 14018, 14020, 14024,
   14025, 14032, 14034, 14038, 14039, 14044, 14043, 14047, 14046, 14050,
   14049, 14053, 14052, 14055, 14056, 14057, 14058, 14059, 14060, 14061,
   14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071,
   14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14084,
   14085, 14089, 14090, 14094, 14104, 14114, 14127, 14142, 14155, 14168,
   14180, 14185, 14193, 14198, 14205, 14205, 14206, 14206, 14209, 14236,
   14241, 14247, 14253, 14259, 14263, 14267, 14268, 14272, 14299, 14301,
   14305, 14309, 14313, 14320, 14321, 14325, 14326, 14330, 14331, 14335,
   14336, 14342, 14348, 14354, 14364, 14363, 14373, 14374, 14379, 14380,
   14381, 14386, 14387, 14388, 14392, 14393, 14397, 14409, 14418, 14428,
   14437, 14451, 14452, 14457, 14456, 14472, 14473, 14474, 14478, 14479,
   14483, 14483, 14505, 14506, 14510, 14511, 14512, 14516, 14520, 14527,
   14530, 14528, 14544, 14551, 14572, 14589, 14591, 14595, 14596, 14600,
   14601, 14609, 14610, 14611, 14612, 14618, 14624, 14634, 14636, 14638,
   14643, 14644, 14645, 14646, 14647, 14651, 14652, 14653, 14654, 14655,
   14656, 14666, 14667, 14672, 14685, 14698, 14700, 14702, 14707, 14712,
   14714, 14716, 14722, 14723, 14725, 14731, 14730, 14747, 14748, 14752,
   14757, 14765, 14765, 14789, 14790, 14795, 14796, 14798, 14800, 14818,
   14824, 14829, 14811, 14890, 14907, 14931, 14962, 14966, 14975, 14998,
   14927, 15061, 15085, 15094, 15101, 15060, 15121, 15125, 15129, 15133,
   15137, 15141, 15148, 15155, 15162, 15172, 15173, 15177, 15178, 15179,
   15183, 15184, 15189, 15191, 15190, 15196, 15197, 15201, 15208, 15218,
   15224, 15235
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "ABORT_SYM", "ACCESSIBLE_SYM", "ACTION",
  "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM",
  "ALGORITHM_SYM", "ALL", "ALTER", "ALWAYS_SYM", "ANALYZE_SYM",
  "AND_AND_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASCII_SYM",
  "ASENSITIVE_SYM", "AT_SYM", "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM",
  "AUTO_INC", "AVG_ROW_LENGTH", "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM",
  "BEGIN_SYM", "BETWEEN_SYM", "BIGINT", "BINARY", "BINLOG_SYM", "BIN_NUM",
  "BIT_AND", "BIT_OR", "BIT_SYM", "BIT_XOR", "BLOB_SYM", "BLOCK_SYM",
  "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "BYTE_SYM",
  "CACHE_SYM", "CALL_SYM", "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM",
  "CATALOG_NAME_SYM", "CHAIN_SYM", "CHANGE", "CHANGED", "CHARSET",
  "CHAR_SYM", "CHECKPOINT_SYM", "CHECKSUM_SYM", "CHECK_SYM", "CIPHER_SYM",
  "CLASS_ORIGIN_SYM", "CLIENT_SYM", "CLIENT_STATS_SYM", "CLOSE_SYM",
  "COALESCE", "CODE_SYM", "COLLATE_SYM", "COLLATION_SYM", "COLUMNS",
  "COLUMN_ADD_SYM", "COLUMN_CREATE_SYM", "COLUMN_DELETE_SYM",
  "COLUMN_EXISTS_SYM", "COLUMN_GET_SYM", "COLUMN_LIST_SYM", "COLUMN_SYM",
  "COLUMN_NAME_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM",
  "COMPACT_SYM", "COMPLETION_SYM", "COMPRESSED_SYM", "CONCURRENT",
  "CONDITION_SYM", "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT",
  "CONSTRAINT_CATALOG_SYM", "CONSTRAINT_NAME_SYM", "CONSTRAINT_SCHEMA_SYM",
  "CONTAINS_SYM", "CONTEXT_SYM", "CONTINUE_SYM", "CONTRIBUTORS_SYM",
  "CONVERT_SYM", "COUNT_SYM", "CPU_SYM", "CREATE", "CROSS", "CUBE_SYM",
  "CURDATE", "CURRENT_USER", "CURSOR_SYM", "CURSOR_NAME_SYM", "CURTIME",
  "DATABASE", "DATABASES", "DATAFILE_SYM", "DATA_SYM", "DATETIME",
  "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DATE_SYM", "DAY_HOUR_SYM",
  "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DAY_SYM",
  "DEALLOCATE_SYM", "DECIMAL_NUM", "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT",
  "DEFINER_SYM", "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DELETE_SYM",
  "DESC", "DESCRIBE", "DES_KEY_FILE", "DETERMINISTIC_SYM", "DIRECTORY_SYM",
  "DISABLE_SYM", "DISCARD", "DISK_SYM", "DISTINCT", "DIV_SYM",
  "DOUBLE_SYM", "DO_SYM", "DROP", "DUAL_SYM", "DUMPFILE", "DUPLICATE_SYM",
  "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ELSEIF_SYM", "ENABLE_SYM",
  "ENCLOSED", "END", "ENDS_SYM", "END_OF_INPUT", "ENGINES_SYM",
  "ENGINE_SYM", "ENUM", "EQ", "EQUAL_SYM", "ERROR_SYM", "ERRORS",
  "ESCAPED", "ESCAPE_SYM", "EVENTS_SYM", "EVENT_SYM", "EVERY_SYM",
  "EXAMINED_SYM", "EXECUTE_SYM", "EXISTS", "EXIT_SYM", "EXPANSION_SYM",
  "EXTENDED_SYM", "EXTENT_SIZE_SYM", "EXTRACT_SYM", "FALSE_SYM",
  "FAST_SYM", "FAULTS_SYM", "FETCH_SYM", "FILE_SYM", "FIRST_SYM",
  "FIXED_SYM", "FLOAT_NUM", "FLOAT_SYM", "FLUSH_SYM", "FORCE_SYM",
  "FOREIGN", "FOR_SYM", "FOUND_SYM", "FROM", "FULL", "FULLTEXT_SYM",
  "FUNCTION_SYM", "GE", "GENERAL", "GENERATED_SYM", "GEOMETRYCOLLECTION",
  "GEOMETRY_SYM", "GET_FORMAT", "GLOBAL_SYM", "GRANT", "GRANTS",
  "GROUP_SYM", "GROUP_CONCAT_SYM", "GT_SYM", "HANDLER_SYM", "HARD_SYM",
  "HASH_SYM", "HAVING", "HELP_SYM", "HEX_NUM", "HEX_STRING",
  "HIGH_PRIORITY", "HOST_SYM", "HOSTS_SYM", "HOUR_MICROSECOND_SYM",
  "HOUR_MINUTE_SYM", "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT",
  "IDENTIFIED_SYM", "IDENT_QUOTED", "IF", "IGNORE_SYM",
  "IGNORE_SERVER_IDS_SYM", "IMPORT", "INDEXES", "INDEX_SYM",
  "INDEX_STATS_SYM", "INFILE", "INITIAL_SIZE_SYM", "INNER_SYM",
  "INOUT_SYM", "INSENSITIVE_SYM", "INSERT", "INSERT_METHOD", "INSTALL_SYM",
  "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", "IN_SYM", "IO_SYM",
  "IPC_SYM", "IS", "ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "JOIN_SYM",
  "KEYS", "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LANGUAGE_SYM",
  "LAST_SYM", "LAST_VALUE", "LE", "LEADING", "LEAVES", "LEAVE_SYM", "LEFT",
  "LESS_SYM", "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINEAR_SYM",
  "LINES", "LINESTRING", "LIST_SYM", "LOAD", "LOCAL_SYM", "LOCATOR_SYM",
  "LOCKS_SYM", "LOCK_SYM", "LOGFILE_SYM", "LOGS_SYM", "LONGBLOB",
  "LONGTEXT", "LONG_NUM", "LONG_SYM", "LOOP_SYM", "LOW_PRIORITY", "LT",
  "MASTER_CONNECT_RETRY_SYM", "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM",
  "MASTER_LOG_POS_SYM", "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM",
  "MASTER_SERVER_ID_SYM", "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM",
  "MASTER_SSL_CERT_SYM", "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM",
  "MASTER_SSL_SYM", "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MASTER_SYM",
  "MASTER_USER_SYM", "MASTER_HEARTBEAT_PERIOD_SYM", "MATCH",
  "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_ROWS",
  "MAX_SIZE_SYM", "MAX_SYM", "MAX_UPDATES_PER_HOUR",
  "MAX_USER_CONNECTIONS_SYM", "MAX_VALUE_SYM", "MEDIUMBLOB", "MEDIUMINT",
  "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM", "MERGE_SYM",
  "MESSAGE_TEXT_SYM", "MICROSECOND_SYM", "MIGRATE_SYM",
  "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_ROWS",
  "MIN_SYM", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM",
  "MONTH_SYM", "MULTILINESTRING", "MULTIPOINT", "MULTIPOLYGON",
  "MUTEX_SYM", "MYSQL_ERRNO_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
  "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM", "NE", "NEG",
  "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM", "NOT2_SYM",
  "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM", "NO_WRITE_TO_BINLOG",
  "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM", "OFFSET_SYM",
  "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM", "ONLINE_SYM",
  "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION", "OPTIONALLY", "OR2_SYM",
  "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM",
  "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PAGE_CHECKSUM_SYM",
  "PARAM_MARKER", "PARSER_SYM", "PARSE_VCOL_EXPR_SYM", "PARTIAL",
  "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM", "PASSWORD",
  "PERSISTENT_SYM", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", "POINT_SYM",
  "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION", "PREPARE_SYM",
  "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE_SYM",
  "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM", "PROFILES_SYM", "PROXY_SYM",
  "PURGE", "QUARTER_SYM", "QUERY_SYM", "QUICK", "RANGE_SYM", "READS_SYM",
  "READ_ONLY_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL", "REBUILD_SYM",
  "RECOVER_SYM", "REDOFILE_SYM", "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM",
  "REFERENCES", "REGEXP", "RELAY", "RELAYLOG_SYM", "RELAY_LOG_FILE_SYM",
  "RELAY_LOG_POS_SYM", "RELAY_THREAD", "RELEASE_SYM", "RELOAD",
  "REMOVE_SYM", "RENAME", "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM",
  "REPEAT_SYM", "REPLACE", "REPLICATION", "REQUIRE_SYM", "RESET_SYM",
  "RESIGNAL_SYM", "RESOURCES", "RESTORE_SYM", "RESTRICT", "RESUME_SYM",
  "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT", "ROLLBACK_SYM",
  "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM",
  "RTREE_SYM", "SAVEPOINT_SYM", "SCHEDULE_SYM", "SCHEMA_NAME_SYM",
  "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM",
  "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM",
  "SESSION_SYM", "SERVER_SYM", "SERVER_OPTIONS", "SET", "SET_VAR",
  "SHARE_SYM", "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN",
  "SIGNAL_SYM", "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SLOW", "SMALLINT",
  "SNAPSHOT_SYM", "SOCKET_SYM", "SOFT_SYM", "SONAME_SYM", "SOUNDS_SYM",
  "SOURCE_SYM", "SPATIAL_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM",
  "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT",
  "SQL_CACHE_SYM", "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM",
  "SQL_SMALL_RESULT", "SQL_SYM", "SQL_THREAD", "SSL_SYM", "STARTING",
  "STARTS_SYM", "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM",
  "STOP_SYM", "STORAGE_SYM", "STRAIGHT_JOIN", "STRING_SYM",
  "SUBCLASS_ORIGIN_SYM", "SUBDATE_SYM", "SUBJECT_SYM", "SUBPARTITIONS_SYM",
  "SUBPARTITION_SYM", "SUBSTRING", "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM",
  "SWAPS_SYM", "SWITCHES_SYM", "SYSDATE", "TABLES", "TABLESPACE",
  "TABLE_REF_PRIORITY", "TABLE_STATS_SYM", "TABLE_SYM",
  "TABLE_CHECKSUM_SYM", "TABLE_NAME_SYM", "TEMPORARY", "TEMPTABLE_SYM",
  "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THAN_SYM", "THEN_SYM",
  "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIME_SYM", "TINYBLOB",
  "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING", "TRANSACTION_SYM",
  "TRANSACTIONAL_SYM", "TRIGGERS_SYM", "TRIGGER_SYM", "TRIM", "TRUE_SYM",
  "TRUNCATE_SYM", "TYPES_SYM", "TYPE_SYM", "UDF_RETURNS_SYM",
  "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM",
  "UNDERSCORE_CHARSET", "UNDOFILE_SYM", "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM",
  "UNICODE_SYM", "UNINSTALL_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM",
  "UNLOCK_SYM", "UNSIGNED", "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM",
  "USAGE", "USER", "USER_STATS_SYM", "USE_FRM", "USE_SYM", "USING",
  "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM", "VALUES",
  "VALUE_SYM", "VARBINARY", "VARCHAR", "VARIABLES", "VARIANCE_SYM",
  "VARYING", "VAR_SAMP_SYM", "VIA_SYM", "VIEW_SYM", "VIRTUAL_SYM",
  "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE", "WHILE_SYM",
  "WITH", "WITH_CUBE_SYM", "WITH_ROLLUP_SYM", "WORK_SYM", "WRAPPER_SYM",
  "WRITE_SYM", "X509_SYM", "XA_SYM", "XML_SYM", "XOR", "YEAR_MONTH_SYM",
  "YEAR_SYM", "ZEROFILL", "IMPOSSIBLE_ACTION", "'|'", "'&'", "'-'", "'+'",
  "'*'", "'/'", "'%'", "'^'", "'~'", "'('", "')'", "','", "'!'", "'{'",
  "'}'", "';'", "'@'", "'.'", "':'", "$accept", "query", "$@1",
  "opt_end_of_input", "verb_clause", "statement", "deallocate",
  "deallocate_or_drop", "prepare", "prepare_src", "execute", "$@2",
  "execute_using", "execute_var_list", "execute_var_ident", "help", "$@3",
  "change", "$@4", "master_defs", "master_def", "ignore_server_id_list",
  "ignore_server_id", "master_file_def", "create", "$@5", "$@6", "$@7",
  "$@8", "$@9", "$@10", "server_def", "server_options_list",
  "server_option", "event_tail", "$@11", "ev_schedule_time", "$@12",
  "opt_ev_status", "ev_starts", "ev_ends", "opt_ev_on_completion",
  "ev_on_completion", "opt_ev_comment", "ev_sql_stmt", "$@13",
  "ev_sql_stmt_inner", "clear_privileges", "sp_name", "sp_a_chistics",
  "sp_c_chistics", "sp_chistic", "sp_c_chistic", "sp_suid", "call", "$@14",
  "opt_sp_cparam_list", "opt_sp_cparams", "sp_cparams", "sp_fdparam_list",
  "sp_fdparams", "sp_init_param", "sp_fdparam", "sp_pdparam_list",
  "sp_pdparams", "sp_pdparam", "sp_opt_inout", "sp_proc_stmts",
  "sp_proc_stmts1", "sp_decls", "sp_decl", "$@15", "$@16",
  "sp_cursor_stmt", "$@17", "sp_handler_type", "sp_hcond_list",
  "sp_hcond_element", "sp_cond", "sqlstate", "opt_value", "sp_hcond",
  "signal_stmt", "signal_value", "opt_signal_value",
  "opt_set_signal_information", "signal_information_item_list",
  "signal_allowed_expr", "signal_condition_information_item_name",
  "resignal_stmt", "sp_decl_idents", "sp_opt_default", "sp_proc_stmt",
  "sp_proc_stmt_if", "$@18", "sp_proc_stmt_statement", "$@19",
  "sp_proc_stmt_return", "$@20", "sp_proc_stmt_unlabeled", "$@21",
  "sp_proc_stmt_leave", "sp_proc_stmt_iterate", "sp_proc_stmt_open",
  "sp_proc_stmt_fetch", "$@22", "sp_proc_stmt_close", "sp_opt_fetch_noise",
  "sp_fetch_list", "sp_if", "$@23", "$@24", "$@25", "sp_elseifs",
  "case_stmt_specification", "simple_case_stmt", "$@26", "$@27",
  "searched_case_stmt", "$@28", "simple_when_clause_list",
  "searched_when_clause_list", "simple_when_clause", "$@29", "$@30",
  "searched_when_clause", "$@31", "$@32", "else_clause_opt",
  "sp_labeled_control", "$@33", "sp_opt_label", "sp_labeled_block", "$@34",
  "sp_unlabeled_block", "$@35", "sp_block_content", "$@36",
  "sp_unlabeled_control", "$@37", "$@38", "$@39", "trg_action_time",
  "trg_event", "change_tablespace_access", "change_tablespace_info",
  "tablespace_info", "opt_logfile_group_name", "alter_tablespace_info",
  "logfile_group_info", "alter_logfile_group_info", "add_log_file",
  "change_ts_option_list", "$@40", "change_ts_options", "change_ts_option",
  "tablespace_option_list", "tablespace_options", "tablespace_option",
  "alter_tablespace_option_list", "alter_tablespace_options",
  "alter_tablespace_option", "logfile_group_option_list",
  "logfile_group_options", "logfile_group_option",
  "alter_logfile_group_option_list", "alter_logfile_group_options",
  "alter_logfile_group_option", "ts_datafile", "lg_undofile",
  "lg_redofile", "tablespace_name", "logfile_group_name", "ts_access_mode",
  "opt_ts_initial_size", "opt_ts_autoextend_size", "opt_ts_max_size",
  "opt_ts_extent_size", "opt_ts_undo_buffer_size",
  "opt_ts_redo_buffer_size", "opt_ts_nodegroup", "opt_ts_comment",
  "opt_ts_engine", "opt_ts_wait", "ts_wait", "size_number", "create2",
  "create2a", "$@41", "$@42", "create3", "$@43", "$@44",
  "opt_create_partitioning", "opt_partitioning", "partitioning", "$@45",
  "have_partitioning", "partition_entry", "$@46", "partition",
  "part_type_def", "$@47", "opt_linear", "opt_key_algo", "part_field_list",
  "part_field_item_list", "part_field_item", "part_column_list",
  "part_func", "sub_part_func", "opt_num_parts", "opt_sub_part", "$@48",
  "$@49", "sub_part_field_list", "sub_part_field_item", "part_func_expr",
  "opt_num_subparts", "part_defs", "part_def_list", "part_definition",
  "$@50", "part_name", "opt_part_values", "$@51", "$@52", "part_func_max",
  "part_values_in", "part_value_list", "part_value_item", "$@53", "$@54",
  "part_value_item_list", "part_value_expr_item", "opt_sub_partition",
  "sub_part_list", "sub_part_definition", "$@55", "sub_name",
  "opt_part_options", "opt_part_option_list", "opt_part_option",
  "create_select", "$@56", "$@57", "opt_as", "opt_create_database_options",
  "create_database_options", "create_database_option", "opt_table_options",
  "table_options", "table_option", "opt_if_not_exists",
  "opt_create_table_options", "create_table_options_space_separated",
  "create_table_options", "create_table_option", "$@58", "default_charset",
  "default_collation", "storage_engines", "known_storage_engines",
  "row_types", "merge_insert_types", "opt_select_from", "udf_type",
  "create_field_list", "field_list", "field_list_item", "column_def",
  "key_def", "$@59", "$@60", "$@61", "$@62", "opt_check_constraint",
  "check_constraint", "opt_constraint", "constraint", "field_spec", "$@63",
  "field_def", "opt_generated_always", "vcol_opt_specifier",
  "vcol_opt_attribute", "vcol_opt_attribute_list", "vcol_attribute",
  "parse_vcol_expr", "virtual_column_func", "type", "$@64", "$@65",
  "spatial_type", "char", "nchar", "varchar", "nvarchar", "int_type",
  "real_type", "float_options", "precision", "field_options",
  "field_opt_list", "field_option", "field_length", "opt_field_length",
  "opt_precision", "opt_attribute", "opt_attribute_list", "attribute",
  "type_with_opt_collate", "now_or_signed_literal", "hex_num_or_string",
  "charset", "charset_name", "charset_name_or_default",
  "opt_load_data_charset", "old_or_new_charset_name",
  "old_or_new_charset_name_or_default", "collation_name", "opt_collate",
  "collation_name_or_default", "opt_default", "ascii", "unicode",
  "opt_binary", "opt_bin_mod", "opt_primary", "references", "opt_ref_list",
  "ref_list", "opt_match_clause", "opt_on_update_delete", "delete_option",
  "normal_key_type", "constraint_key_type", "key_or_index",
  "opt_key_or_index", "keys_or_index", "opt_unique", "fulltext", "spatial",
  "init_key_options", "key_alg", "normal_key_options",
  "fulltext_key_options", "spatial_key_options", "normal_key_opts",
  "spatial_key_opts", "fulltext_key_opts", "key_using_alg", "all_key_opt",
  "normal_key_opt", "spatial_key_opt", "fulltext_key_opt",
  "btree_or_rtree", "key_list", "key_part", "opt_ident", "opt_component",
  "string_list", "alter", "$@66", "$@67", "$@68", "$@69", "$@70", "$@71",
  "$@72", "ev_alter_on_schedule_completion", "opt_ev_rename_to",
  "opt_ev_sql_stmt", "ident_or_empty", "alter_commands", "$@73", "$@74",
  "$@75", "remove_partitioning", "all_or_alt_part_name_list",
  "add_partition_rule", "$@76", "add_part_extra", "reorg_partition_rule",
  "$@77", "reorg_parts_rule", "$@78", "alt_part_name_list",
  "alt_part_name_item", "alter_list", "add_column", "alter_list_item",
  "$@79", "$@80", "$@81", "opt_column", "opt_ignore", "alter_options",
  "$@82", "alter_options_part2", "alter_option_list", "alter_option",
  "opt_restrict", "opt_place", "opt_to", "slave", "$@83", "$@84", "start",
  "start_transaction_opts", "slave_thread_opts", "$@85",
  "slave_thread_opt_list", "slave_thread_opt", "slave_until",
  "slave_until_opts", "checksum", "$@86", "opt_checksum_type", "repair",
  "$@87", "opt_mi_repair_type", "mi_repair_types", "mi_repair_type",
  "analyze", "$@88", "binlog_base64_event", "check", "$@89",
  "opt_mi_check_type", "mi_check_types", "mi_check_type", "optimize",
  "$@90", "opt_no_write_to_binlog", "rename", "$@91", "rename_list",
  "table_to_table_list", "table_to_table", "keycache", "$@92",
  "keycache_list_or_parts", "keycache_list", "assign_to_keycache",
  "assign_to_keycache_parts", "key_cache_name", "preload", "$@93",
  "preload_list_or_parts", "preload_list", "preload_keys",
  "preload_keys_parts", "adm_partition", "$@94", "cache_keys_spec", "$@95",
  "cache_key_list_or_empty", "opt_ignore_leaves", "select", "select_init",
  "select_paren", "select_paren_derived", "select_init2", "$@96",
  "select_part2", "$@97", "$@98", "select_into", "select_from",
  "select_options", "select_option_list", "select_option",
  "select_lock_type", "select_item_list", "select_item", "remember_name",
  "remember_end", "select_alias", "opt_time_precision", "optional_braces",
  "expr", "bool_pri", "predicate", "bit_expr", "or", "and", "not", "not2",
  "comp_op", "all_or_any", "opt_dyncol_type", "dyncol_type",
  "dyncall_create_element", "dyncall_create_list", "simple_expr",
  "function_call_keyword", "function_call_nonkeyword",
  "function_call_conflict", "geometry_function", "function_call_generic",
  "@99", "fulltext_options", "opt_natural_language_mode",
  "opt_query_expansion", "opt_udf_expr_list", "udf_expr_list", "udf_expr",
  "sum_expr", "$@100", "$@101", "$@102", "variable", "$@103",
  "variable_aux", "opt_distinct", "opt_gconcat_separator",
  "opt_gorder_clause", "$@104", "gorder_list", "in_sum_expr", "$@105",
  "cast_type", "$@106", "opt_expr_list", "expr_list", "ident_list_arg",
  "ident_list", "opt_expr", "opt_else", "when_list", "table_ref",
  "join_table_list", "esc_table_ref", "derived_table_list", "join_table",
  "$@107", "$@108", "$@109", "$@110", "$@111", "$@112", "$@113",
  "normal_join", "table_factor", "$@114", "select_derived_union", "$@115",
  "$@116", "select_init2_derived", "select_part2_derived", "$@117",
  "$@118", "select_derived", "$@119", "select_derived2", "$@120", "$@121",
  "get_select_lex", "select_derived_init", "opt_outer",
  "index_hint_clause", "index_hint_type", "index_hint_definition", "$@122",
  "$@123", "index_hints_list", "opt_index_hints_list", "$@124",
  "opt_key_definition", "$@125", "opt_key_usage_list", "key_usage_element",
  "key_usage_list", "using_list", "interval", "interval_time_stamp",
  "date_time_type", "table_alias", "opt_table_alias", "opt_all",
  "where_clause", "$@126", "having_clause", "$@127", "opt_escape",
  "group_clause", "group_list", "olap_opt", "alter_order_clause",
  "alter_order_list", "alter_order_item", "opt_order_clause",
  "order_clause", "$@128", "order_list", "order_dir",
  "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
  "limit_options", "limit_option", "limit_rows_option",
  "delete_limit_clause", "int_num", "ulong_num", "real_ulong_num",
  "ulonglong_num", "real_ulonglong_num", "dec_num_error", "dec_num",
  "choice", "procedure_clause", "$@129", "procedure_list",
  "procedure_list2", "procedure_item", "select_var_list_init", "$@130",
  "select_var_list", "select_var_ident", "into", "$@131",
  "into_destination", "$@132", "$@133", "do", "$@134", "drop", "$@135",
  "$@136", "$@137", "table_list", "table_name", "table_alias_ref_list",
  "table_alias_ref", "if_exists", "opt_temporary", "insert", "$@138",
  "$@139", "replace", "$@140", "$@141", "insert_lock_option",
  "replace_lock_option", "insert2", "insert_table", "insert_field_spec",
  "$@142", "fields", "insert_values", "$@143", "$@144", "values_list",
  "ident_eq_list", "ident_eq_value", "equal", "opt_equal", "no_braces",
  "$@145", "opt_values", "values", "expr_or_default", "opt_insert_update",
  "$@146", "update", "$@147", "$@148", "update_list", "update_elem",
  "insert_update_list", "insert_update_elem", "opt_low_priority", "delete",
  "$@149", "single_multi", "$@150", "$@151", "$@152", "table_wild_list",
  "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option",
  "truncate", "$@153", "opt_table_sym", "opt_profile_defs", "profile_defs",
  "profile_def", "opt_profile_args", "show", "$@154", "show_param",
  "$@155", "$@156", "show_engine_param", "master_or_binary", "opt_storage",
  "opt_db", "opt_full", "from_or_in", "binlog_in", "binlog_from",
  "wild_and_where", "describe", "$@157", "$@158", "describe_command",
  "opt_extended_describe", "opt_describe_column", "flush", "$@159",
  "flush_options", "$@160", "$@161", "opt_with_read_lock",
  "flush_options_list", "flush_option", "opt_table_list",
  "optional_flush_tables_arguments", "reset", "$@162", "reset_options",
  "reset_option", "$@163", "slave_reset_options", "purge", "$@164",
  "purge_options", "purge_option", "kill", "$@165", "kill_type",
  "kill_option", "kill_expr", "use", "load", "$@166", "$@167", "$@168",
  "$@169", "data_or_xml", "opt_local", "load_data_lock", "opt_duplicate",
  "opt_field_term", "field_term_list", "field_term", "opt_line_term",
  "line_term_list", "line_term", "opt_xml_rows_identified_by",
  "opt_ignore_lines", "lines_or_rows", "opt_field_or_var_spec",
  "fields_or_vars", "field_or_var", "opt_load_data_set_spec",
  "load_data_set_list", "load_data_set_elem", "text_literal",
  "text_string", "param_marker", "signed_literal", "literal",
  "NUM_literal", "insert_ident", "table_wild", "order_ident",
  "simple_ident", "simple_ident_nospvar", "simple_ident_q", "field_ident",
  "table_ident", "table_ident_opt_wild", "table_ident_nodb", "IDENT_sys",
  "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
  "ident", "label_ident", "ident_or_text", "user", "keyword", "keyword_sp",
  "set", "$@170", "opt_option", "option_value_list", "option_type_value",
  "$@171", "option_type", "option_type2", "opt_var_type",
  "opt_var_ident_type", "ext_option_value", "sys_option_value",
  "option_value", "internal_variable_name", "isolation_types",
  "text_or_password", "set_expr_or_default", "lock", "$@172",
  "table_or_tables", "table_lock_list", "table_lock", "lock_option",
  "unlock", "$@173", "handler", "$@174", "handler_read_or_scan",
  "handler_scan_function", "handler_rkey_function", "$@175",
  "handler_rkey_mode", "revoke", "revoke_command", "grant",
  "grant_command", "opt_table", "grant_privileges", "opt_privileges",
  "object_privilege_list", "object_privilege", "$@176", "$@177", "$@178",
  "$@179", "opt_and", "require_list", "require_list_element",
  "grant_ident", "user_list", "grant_list", "via_or_with", "using_or_as",
  "grant_user", "opt_column_list", "column_list", "column_list_id",
  "require_clause", "grant_options", "opt_grant_option",
  "grant_option_list", "grant_option", "begin", "$@180", "opt_work",
  "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
  "savepoint", "release", "union_clause", "union_list", "$@181",
  "union_opt", "opt_union_order_or_limit", "union_order_or_limit", "$@182",
  "order_or_limit", "union_option", "query_specification",
  "query_expression_body", "$@183", "subselect", "subselect_start",
  "subselect_end", "opt_query_expression_options",
  "query_expression_option_list", "query_expression_option",
  "view_or_trigger_or_sp_or_event", "definer_tail", "no_definer_tail",
  "definer_opt", "no_definer", "definer", "view_replace_or_algorithm",
  "view_replace", "view_algorithm", "view_suid", "view_tail", "$@184",
  "view_list_opt", "view_list", "view_select", "$@185", "view_select_aux",
  "view_check_option", "trigger_tail", "$@186", "$@187", "$@188",
  "udf_tail", "sf_tail", "$@189", "$@190", "$@191", "$@192", "$@193",
  "sp_tail", "$@194", "$@195", "$@196", "$@197", "xa", "xid",
  "begin_or_start", "opt_join_or_resume", "opt_one_phase", "opt_suspend",
  "$@198", "opt_migrate", "install", "uninstall", "keep_gcc_happy", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const yytype_uint16 yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
     695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   723,   724,
     725,   726,   727,   728,   729,   730,   731,   732,   733,   734,
     735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
     755,   756,   757,   758,   759,   760,   761,   762,   763,   764,
     765,   766,   767,   768,   769,   770,   771,   772,   773,   774,
     775,   776,   777,   778,   779,   780,   781,   782,   783,   784,
     785,   786,   787,   788,   789,   790,   791,   792,   793,   794,
     795,   796,   797,   798,   799,   800,   801,   802,   803,   804,
     805,   806,   807,   808,   809,   810,   811,   812,   813,   814,
     815,   816,   817,   818,   819,   820,   821,   822,   823,   824,
     825,   826,   827,   828,   829,   830,   831,   832,   833,   834,
     835,   836,   837,   838,   839,   840,   841,   842,   843,   844,
     845,   846,   847,   848,   849,   850,   851,   852,   853,   854,
     855,   856,   857,   858,   859,   860,   861,   862,   863,   864,
     865,   866,   867,   868,   869,   870,   871,   872,   873,   124,
      38,    45,    43,    42,    47,    37,    94,   126,    40,    41,
      44,    33,   123,   125,    59,    64,    46,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   638,   639,   640,   639,   639,   641,   641,   642,   642,
     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
     643,   643,   643,   644,   645,   645,   646,   647,   647,   649,
     648,   650,   650,   651,   651,   652,   654,   653,   656,   655,
     657,   657,   658,   658,   658,   658,   658,   658,   658,   658,
     658,   658,   658,   658,   658,   658,   658,   659,   659,   659,
     660,   661,   661,   661,   661,   663,   662,   664,   662,   665,
     662,   666,   662,   667,   662,   668,   662,   662,   662,   662,
     662,   669,   670,   670,   671,   671,   671,   671,   671,   671,
     671,   673,   672,   675,   674,   674,   676,   676,   676,   676,
     677,   677,   678,   678,   679,   679,   680,   680,   681,   681,
     683,   682,   684,   684,   684,   684,   684,   684,   684,   684,
     684,   684,   684,   684,   684,   685,   686,   686,   687,   687,
     688,   688,   689,   689,   689,   689,   689,   689,   689,   690,
     690,   690,   691,   691,   693,   692,   694,   694,   695,   695,
     696,   696,   697,   697,   698,   698,   699,   700,   701,   701,
     702,   702,   703,   704,   704,   704,   704,   705,   705,   706,
     706,   707,   707,   709,   708,   708,   710,   708,   708,   712,
     711,   713,   713,   714,   714,   715,   716,   716,   717,   718,
     718,   719,   719,   719,   719,   719,   720,   721,   721,   722,
     722,   723,   723,   724,   724,   725,   725,   725,   726,   726,
     726,   726,   726,   726,   726,   726,   726,   726,   726,   726,
     727,   728,   728,   729,   729,   730,   730,   730,   730,   730,
     730,   730,   730,   730,   730,   730,   730,   730,   732,   731,
     734,   733,   736,   735,   738,   737,   739,   740,   741,   743,
     742,   744,   745,   745,   745,   746,   746,   748,   749,   750,
     747,   751,   751,   751,   752,   752,   754,   755,   753,   757,
     756,   758,   758,   759,   759,   761,   762,   760,   764,   765,
     763,   766,   766,   768,   767,   769,   769,   771,   770,   773,
     772,   775,   774,   776,   777,   778,   776,   779,   776,   780,
     780,   781,   781,   781,   782,   783,   784,   785,   785,   786,
     786,   787,   788,   789,   789,   791,   790,   792,   792,   792,
     793,   793,   793,   794,   795,   795,   795,   796,   796,   796,
     796,   796,   796,   796,   796,   797,   798,   798,   798,   799,
     799,   799,   799,   799,   800,   801,   801,   801,   802,   802,
     802,   802,   802,   802,   802,   803,   804,   804,   804,   805,
     805,   805,   806,   807,   808,   809,   810,   811,   811,   811,
     812,   813,   814,   815,   816,   817,   818,   819,   820,   821,
     821,   822,   822,   823,   823,   824,   824,   824,   824,   826,
     825,   827,   825,   828,   829,   828,   830,   828,   831,   832,
     832,   834,   833,   835,   837,   836,   838,   839,   840,   839,
     839,   839,   839,   839,   841,   841,   842,   842,   843,   843,
     844,   844,   845,   846,   847,   848,   849,   849,   850,   851,
     850,   852,   850,   853,   853,   854,   855,   856,   856,   857,
     857,   858,   858,   860,   859,   861,   862,   863,   862,   864,
     862,   865,   865,   866,   866,   867,   867,   869,   870,   868,
     871,   871,   872,   872,   873,   873,   874,   874,   876,   875,
     877,   878,   878,   879,   879,   880,   880,   880,   880,   880,
     880,   880,   880,   880,   882,   883,   881,   884,   884,   885,
     885,   886,   886,   887,   887,   888,   888,   889,   889,   890,
     891,   891,   892,   892,   893,   893,   894,   894,   894,   895,
     895,   895,   895,   895,   895,   895,   895,   895,   895,   895,
     895,   895,   895,   896,   895,   895,   895,   895,   895,   895,
     895,   895,   895,   895,   895,   895,   895,   895,   895,   895,
     897,   898,   899,   900,   901,   901,   901,   901,   901,   901,
     901,   902,   902,   902,   903,   903,   904,   904,   904,   904,
     905,   906,   906,   907,   907,   908,   908,   910,   909,   911,
     909,   912,   909,   913,   909,   909,   909,   914,   914,   915,
     916,   916,   917,   919,   918,   920,   920,   921,   921,   922,
     922,   922,   923,   923,   924,   924,   925,   925,   925,   926,
     927,   928,   928,   928,   928,   928,   928,   928,   928,   928,
     928,   928,   928,   928,   928,   928,   928,   928,   928,   928,
     928,   928,   928,   928,   928,   928,   928,   928,   928,   928,
     928,   928,   928,   928,   928,   928,   929,   928,   930,   928,
     928,   928,   931,   931,   931,   931,   931,   931,   931,   931,
     932,   933,   933,   934,   934,   935,   935,   935,   935,   935,
     936,   936,   936,   936,   936,   937,   937,   937,   938,   938,
     938,   939,   940,   940,   941,   941,   942,   942,   942,   943,
     943,   943,   943,   944,   944,   945,   945,   946,   946,   947,
     947,   948,   948,   948,   948,   948,   948,   948,   948,   948,
     948,   948,   948,   948,   948,   948,   949,   950,   950,   951,
     951,   952,   952,   953,   953,   954,   954,   955,   955,   956,
     956,   957,   957,   958,   959,   959,   960,   960,   961,   961,
     962,   962,   962,   963,   963,   963,   964,   964,   964,   964,
     964,   964,   964,   965,   965,   966,   966,   967,   968,   968,
     969,   969,   970,   970,   970,   970,   971,   971,   971,   971,
     971,   972,   972,   972,   972,   972,   973,   974,   974,   975,
     975,   976,   976,   977,   977,   977,   978,   978,   979,   980,
     981,   982,   982,   983,   983,   984,   984,   985,   985,   986,
     986,   987,   987,   988,   988,   989,   989,   990,   990,   990,
     990,   990,   990,   991,   991,   992,   993,   993,   994,   994,
     994,   995,   995,   996,   996,   997,   997,   998,   998,   999,
     999,  1001,  1000,  1002,  1000,  1000,  1003,  1000,  1004,  1000,
    1005,  1000,  1006,  1000,  1007,  1000,  1000,  1000,  1000,  1000,
    1000,  1008,  1008,  1008,  1008,  1009,  1009,  1010,  1010,  1011,
    1011,  1012,  1012,  1012,  1012,  1012,  1012,  1012,  1012,  1012,
    1012,  1013,  1012,  1012,  1014,  1012,  1015,  1012,  1012,  1012,
    1012,  1016,  1017,  1017,  1019,  1018,  1020,  1020,  1020,  1022,
    1021,  1023,  1024,  1023,  1025,  1025,  1026,  1027,  1027,  1028,
    1029,  1029,  1029,  1030,  1029,  1031,  1032,  1029,  1029,  1029,
    1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1033,  1033,  1034,  1034,  1036,  1035,  1037,  1037,  1038,
    1038,  1039,  1039,  1040,  1040,  1040,  1041,  1041,  1041,  1042,
    1042,  1042,  1042,  1044,  1043,  1043,  1045,  1043,  1043,  1046,
    1047,  1047,  1049,  1048,  1050,  1050,  1051,  1051,  1051,  1052,
    1052,  1053,  1053,  1055,  1054,  1056,  1056,  1056,  1058,  1057,
    1059,  1059,  1060,  1060,  1061,  1061,  1061,  1063,  1062,  1064,
    1066,  1065,  1067,  1067,  1068,  1068,  1069,  1069,  1069,  1069,
    1069,  1069,  1071,  1070,  1072,  1072,  1072,  1074,  1073,  1073,
    1075,  1075,  1076,  1076,  1077,  1079,  1078,  1080,  1080,  1081,
    1081,  1082,  1083,  1084,  1084,  1086,  1085,  1087,  1087,  1088,
    1088,  1089,  1090,  1092,  1091,  1094,  1093,  1095,  1095,  1096,
    1096,  1097,  1098,  1098,  1099,  1099,  1100,  1100,  1102,  1101,
    1104,  1105,  1103,  1106,  1106,  1106,  1106,  1106,  1107,  1107,
    1108,  1108,  1109,  1109,  1110,  1110,  1110,  1111,  1111,  1111,
    1112,  1112,  1112,  1113,  1113,  1114,  1115,  1116,  1116,  1116,
    1116,  1116,  1117,  1117,  1117,  1118,  1118,  1119,  1119,  1119,
    1119,  1119,  1119,  1119,  1119,  1119,  1119,  1119,  1120,  1120,
    1120,  1120,  1120,  1120,  1121,  1121,  1121,  1121,  1121,  1121,
    1121,  1121,  1121,  1121,  1121,  1121,  1121,  1121,  1122,  1122,
    1122,  1122,  1122,  1122,  1122,  1122,  1122,  1122,  1122,  1122,
    1122,  1122,  1122,  1123,  1123,  1124,  1124,  1125,  1125,  1126,
    1126,  1127,  1127,  1127,  1127,  1127,  1127,  1128,  1128,  1129,
    1129,  1130,  1130,  1130,  1130,  1130,  1130,  1130,  1130,  1130,
    1130,  1130,  1131,  1132,  1132,  1133,  1133,  1133,  1133,  1133,
    1133,  1133,  1133,  1133,  1133,  1133,  1133,  1133,  1133,  1133,
    1133,  1133,  1133,  1133,  1133,  1133,  1133,  1133,  1133,  1133,
    1133,  1133,  1133,  1133,  1133,  1134,  1134,  1134,  1134,  1134,
    1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,
    1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,
    1134,  1134,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,
    1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,
    1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,
    1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,
    1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1137,  1137,
    1137,  1137,  1137,  1137,  1137,  1137,  1139,  1138,  1138,  1140,
    1140,  1141,  1141,  1142,  1142,  1143,  1143,  1144,  1144,  1145,
    1146,  1146,  1146,  1146,  1146,  1146,  1146,  1147,  1148,  1146,
    1146,  1146,  1146,  1146,  1146,  1146,  1146,  1146,  1146,  1146,
    1149,  1146,  1151,  1150,  1152,  1152,  1152,  1153,  1153,  1154,
    1154,  1155,  1156,  1155,  1157,  1157,  1159,  1158,  1160,  1160,
    1160,  1160,  1160,  1160,  1160,  1160,  1160,  1160,  1160,  1160,
    1161,  1160,  1162,  1162,  1163,  1163,  1164,  1164,  1165,  1165,
    1166,  1166,  1167,  1167,  1168,  1168,  1169,  1169,  1170,  1171,
    1171,  1172,  1172,  1173,  1173,  1174,  1173,  1175,  1173,  1176,
    1173,  1173,  1177,  1173,  1178,  1173,  1173,  1179,  1173,  1180,
    1173,  1173,  1181,  1181,  1181,  1183,  1182,  1182,  1182,  1184,
    1185,  1186,  1184,  1187,  1189,  1190,  1188,  1192,  1191,  1194,
    1195,  1193,  1196,  1197,  1198,  1198,  1199,  1199,  1199,  1199,
    1200,  1200,  1202,  1201,  1203,  1201,  1204,  1204,  1205,  1206,
    1205,  1208,  1207,  1209,  1209,  1210,  1210,  1211,  1211,  1212,
    1212,  1213,  1213,  1213,  1213,  1213,  1213,  1213,  1213,  1213,
    1213,  1213,  1213,  1214,  1214,  1214,  1214,  1214,  1214,  1214,
    1214,  1214,  1215,  1215,  1215,  1215,  1216,  1216,  1216,  1217,
    1217,  1218,  1218,  1219,  1220,  1219,  1221,  1222,  1221,  1223,
    1223,  1224,  1224,  1225,  1225,  1226,  1226,  1226,  1227,  1228,
    1228,  1229,  1230,  1230,  1232,  1231,  1233,  1233,  1234,  1234,
    1234,  1235,  1235,  1236,  1236,  1237,  1237,  1237,  1238,  1238,
    1238,  1239,  1239,  1239,  1239,  1239,  1240,  1241,  1241,  1241,
    1241,  1242,  1242,  1242,  1243,  1243,  1243,  1243,  1243,  1243,
    1244,  1244,  1244,  1244,  1244,  1245,  1245,  1245,  1245,  1245,
    1246,  1246,  1246,  1246,  1246,  1247,  1248,  1248,  1249,  1249,
    1250,  1251,  1250,  1252,  1252,  1253,  1253,  1254,  1256,  1255,
    1257,  1257,  1258,  1258,  1260,  1259,  1262,  1263,  1261,  1261,
    1261,  1265,  1264,  1267,  1266,  1268,  1266,  1266,  1266,  1266,
    1266,  1266,  1269,  1266,  1266,  1266,  1266,  1266,  1266,  1270,
    1270,  1271,  1272,  1272,  1273,  1274,  1274,  1275,  1275,  1277,
    1278,  1276,  1280,  1281,  1279,  1282,  1282,  1282,  1282,  1283,
    1283,  1284,  1284,  1285,  1286,  1286,  1286,  1287,  1286,  1288,
    1288,  1289,  1289,  1290,  1289,  1291,  1289,  1292,  1292,  1293,
    1293,  1294,  1295,  1295,  1296,  1296,  1298,  1297,  1299,  1299,
    1300,  1300,  1301,  1301,  1302,  1303,  1302,  1305,  1306,  1304,
    1307,  1307,  1308,  1309,  1309,  1310,  1311,  1311,  1313,  1312,
    1315,  1314,  1316,  1314,  1317,  1314,  1318,  1318,  1319,  1319,
    1320,  1320,  1321,  1321,  1322,  1322,  1322,  1324,  1323,  1325,
    1325,  1326,  1326,  1327,  1327,  1328,  1328,  1328,  1328,  1328,
    1328,  1328,  1328,  1328,  1329,  1329,  1331,  1330,  1332,  1332,
    1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,
    1333,  1332,  1334,  1332,  1332,  1332,  1332,  1332,  1332,  1332,
    1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,
    1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,
    1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1332,  1335,
    1335,  1335,  1336,  1336,  1337,  1337,  1338,  1338,  1339,  1339,
    1340,  1340,  1341,  1341,  1342,  1342,  1343,  1343,  1343,  1345,
    1344,  1346,  1344,  1347,  1347,  1348,  1348,  1348,  1349,  1349,
    1349,  1351,  1350,  1353,  1354,  1352,  1352,  1355,  1355,  1356,
    1356,  1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,
    1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,  1357,
    1358,  1358,  1359,  1359,  1361,  1360,  1362,  1362,  1364,  1363,
    1363,  1363,  1365,  1365,  1367,  1366,  1368,  1369,  1369,  1371,
    1370,  1372,  1372,  1372,  1373,  1373,  1373,  1374,  1374,  1375,
    1377,  1378,  1379,  1380,  1376,  1381,  1381,  1382,  1382,  1383,
    1383,  1383,  1384,  1384,  1384,  1385,  1385,  1386,  1386,  1387,
    1387,  1387,  1387,  1388,  1388,  1389,  1389,  1390,  1390,  1391,
    1391,  1392,  1392,  1393,  1393,  1394,  1394,  1394,  1395,  1395,
    1396,  1396,  1397,  1397,  1398,  1398,  1399,  1400,  1400,  1400,
    1400,  1401,  1401,  1401,  1401,  1402,  1403,  1403,  1403,  1404,
    1404,  1404,  1404,  1404,  1404,  1404,  1404,  1404,  1404,  1404,
    1404,  1404,  1405,  1405,  1405,  1405,  1405,  1406,  1406,  1407,
    1407,  1408,  1409,  1409,  1410,  1410,  1411,  1411,  1411,  1412,
    1412,  1412,  1412,  1413,  1413,  1413,  1414,  1414,  1415,  1416,
    1416,  1417,  1418,  1419,  1420,  1420,  1421,  1421,  1422,  1422,
    1422,  1423,  1423,  1423,  1424,  1424,  1424,  1424,  1424,  1424,
    1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
    1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
    1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
    1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
    1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,  1424,
    1424,  1424,  1424,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
    1425,  1425,  1425,  1425,  1425,  1427,  1426,  1428,  1428,  1429,
    1429,  1431,  1430,  1432,  1432,  1432,  1432,  1433,  1433,  1434,
    1434,  1434,  1434,  1435,  1435,  1435,  1435,  1436,  1436,  1437,
    1437,  1438,  1438,  1438,  1438,  1438,  1438,  1438,  1439,  1439,
    1439,  1440,  1440,  1440,  1440,  1441,  1441,  1441,  1442,  1442,
    1442,  1442,  1442,  1444,  1443,  1445,  1445,  1446,  1446,  1447,
    1448,  1448,  1448,  1448,  1448,  1450,  1449,  1451,  1451,  1452,
    1451,  1453,  1453,  1454,  1454,  1455,  1455,  1455,  1455,  1456,
    1455,  1457,  1457,  1457,  1457,  1457,  1458,  1459,  1459,  1459,
    1459,  1459,  1460,  1461,  1461,  1461,  1461,  1462,  1462,  1463,
    1463,  1464,  1464,  1465,  1465,  1467,  1466,  1468,  1466,  1469,
    1466,  1470,  1466,  1466,  1466,  1466,  1466,  1466,  1466,  1466,
    1466,  1466,  1466,  1466,  1466,  1466,  1466,  1466,  1466,  1466,
    1466,  1466,  1466,  1466,  1466,  1466,  1466,  1466,  1466,  1471,
    1471,  1472,  1472,  1473,  1473,  1473,  1474,  1474,  1474,  1474,
    1475,  1475,  1476,  1476,  1477,  1477,  1478,  1478,  1479,  1479,
    1479,  1479,  1479,  1480,  1480,  1481,  1481,  1482,  1483,  1483,
    1483,  1483,  1483,  1484,  1484,  1485,  1485,  1486,  1486,  1487,
    1487,  1487,  1487,  1487,  1489,  1488,  1490,  1490,  1491,  1491,
    1491,  1492,  1492,  1492,  1493,  1493,  1494,  1495,  1495,  1496,
    1497,  1498,  1498,  1500,  1499,  1501,  1501,  1501,  1502,  1502,
    1504,  1503,  1505,  1505,  1506,  1506,  1506,  1507,  1507,  1508,
    1509,  1508,  1510,  1511,  1512,  1513,  1513,  1514,  1514,  1515,
    1515,  1515,  1515,  1515,  1515,  1515,  1515,  1516,  1516,  1516,
    1517,  1517,  1517,  1517,  1517,  1518,  1518,  1518,  1518,  1518,
    1518,  1519,  1519,  1520,  1521,  1522,  1522,  1522,  1523,  1524,
    1524,  1524,  1525,  1525,  1525,  1527,  1526,  1528,  1528,  1529,
    1529,  1531,  1530,  1532,  1532,  1533,  1533,  1533,  1533,  1535,
    1536,  1537,  1534,  1538,  1538,  1540,  1541,  1542,  1543,  1544,
    1539,  1546,  1547,  1548,  1549,  1545,  1550,  1550,  1550,  1550,
    1550,  1550,  1551,  1551,  1551,  1552,  1552,  1553,  1553,  1553,
    1554,  1554,  1555,  1556,  1555,  1557,  1557,  1558,  1558,  1559,
    1559,  1560
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const yytype_uint8 yyr2[] =
{
       0,     2,     1,     0,     4,     2,     0,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     3,     1,     1,     4,     1,     2,     0,
       4,     0,     2,     3,     1,     2,     0,     3,     0,     5,
       1,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     5,     1,     0,     1,     3,
       1,     3,     3,     3,     3,     0,     7,     0,    12,     0,
      12,     0,    12,     0,     6,     0,     3,     4,     4,     3,
       2,    10,     1,     3,     2,     2,     2,     2,     2,     2,
       2,     0,    13,     0,     6,     2,     0,     1,     3,     1,
       0,     2,     0,     2,     0,     1,     3,     4,     0,     2,
       0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     0,     3,     1,     0,     2,
       0,     2,     2,     2,     2,     2,     3,     3,     1,     1,
       1,     2,     3,     3,     0,     4,     0,     3,     0,     1,
       3,     1,     0,     1,     3,     1,     0,     3,     0,     1,
       3,     1,     4,     0,     1,     1,     1,     0,     3,     2,
       3,     0,     3,     0,     5,     5,     0,     7,     5,     0,
       2,     1,     1,     1,     3,     1,     1,     1,     3,     0,
       1,     1,     1,     1,     2,     1,     3,     1,     1,     0,
       1,     0,     2,     3,     5,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       3,     1,     3,     0,     2,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
       0,     2,     0,     3,     0,     2,     2,     2,     2,     0,
       6,     2,     0,     2,     1,     1,     3,     0,     0,     0,
       7,     0,     2,     2,     1,     1,     0,     0,     8,     0,
       6,     1,     2,     1,     2,     0,     0,     6,     0,     0,
       6,     0,     2,     0,     5,     0,     1,     0,     5,     0,
       2,     0,     5,     4,     0,     0,     8,     0,     7,     1,
       1,     1,     1,     1,     2,     4,     5,     0,     4,     4,
       4,     3,     3,     2,     2,     0,     2,     1,     2,     3,
       1,     1,     1,     1,     1,     2,     3,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     2,     3,     1,
       1,     1,     1,     1,     1,     1,     2,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     2,     3,     1,
       1,     1,     2,     2,     2,     1,     1,     1,     1,     2,
       3,     3,     3,     3,     3,     3,     3,     3,     4,     0,
       1,     1,     1,     1,     1,     2,     3,     2,     4,     0,
       6,     0,     5,     0,     0,     5,     0,     7,     1,     0,
       1,     0,     4,     0,     0,     3,     5,     6,     0,     4,
       2,     2,     2,     2,     0,     1,     0,     3,     0,     1,
       1,     3,     1,     4,     5,     5,     0,     2,     0,     0,
       7,     0,    10,     1,     3,     1,     1,     0,     2,     0,
       3,     1,     3,     0,     6,     1,     0,     0,     5,     0,
       4,     1,     1,     1,     3,     1,     3,     0,     0,     5,
       1,     3,     1,     1,     0,     3,     1,     3,     0,     4,
       1,     0,     1,     2,     1,     3,     4,     3,     3,     3,
       3,     4,     4,     3,     0,     0,     6,     0,     1,     0,
       1,     1,     2,     1,     1,     0,     1,     1,     2,     1,
       0,     3,     0,     1,     1,     2,     1,     2,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     0,     6,     1,     1,     3,     4,     4,
       2,     2,     2,     3,     3,     3,     3,     3,     3,     3,
       4,     4,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     2,     1,     1,     1,     1,
       1,     1,     3,     1,     1,     2,     2,     0,     8,     0,
       9,     0,     9,     0,     9,     8,     2,     0,     1,     4,
       0,     1,     2,     0,     3,     2,     8,     0,     2,     0,
       1,     1,     0,     1,     2,     1,     1,     2,     2,     4,
       3,     3,     3,     3,     1,     2,     1,     1,     3,     2,
       3,     2,     2,     1,     3,     3,     2,     3,     1,     2,
       2,     2,     1,     2,     1,     1,     1,     2,     3,     2,
       3,     2,     2,     3,     3,     3,     0,     6,     0,     6,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     2,     2,     1,     2,     1,     2,     3,     2,
       1,     1,     1,     1,     1,     1,     1,     2,     0,     1,
       1,     5,     0,     1,     2,     1,     1,     1,     1,     3,
       3,     3,     3,     0,     1,     0,     1,     0,     1,     2,
       1,     1,     2,     2,     4,     1,     3,     2,     1,     2,
       2,     2,     3,     3,     3,     3,     2,     2,     1,     1,
       1,     2,     1,     1,     1,     1,     1,     0,     2,     1,
       1,     1,     1,     1,     0,     2,     1,     1,     0,     1,
       1,     2,     2,     1,     2,     2,     0,     1,     1,     1,
       3,     1,     3,     0,     1,     0,     1,     5,     0,     3,
       3,     1,     0,     2,     2,     2,     0,     3,     3,     6,
       6,     1,     1,     2,     2,     2,     1,     2,     2,     1,
       1,     0,     1,     1,     1,     1,     0,     1,     1,     1,
       0,     1,     2,     0,     1,     0,     1,     0,     1,     1,
       2,     1,     2,     1,     2,     2,     2,     3,     2,     3,
       3,     3,     3,     1,     1,     1,     1,     3,     1,     1,
       1,     4,     2,     1,     4,     0,     1,     0,     2,     1,
       3,     0,     6,     0,     5,     7,     0,     5,     0,     5,
       0,     5,     0,     4,     0,    10,     3,     4,     3,     3,
       7,     0,     3,     1,     4,     0,     3,     0,     2,     0,
       1,     0,     2,     2,     2,     2,     1,     1,     1,     3,
       4,     0,     6,     4,     0,     5,     0,     6,     4,     3,
       1,     2,     1,     1,     0,     5,     0,     3,     2,     0,
       5,     0,     0,     6,     1,     3,     1,     1,     3,     2,
       3,     2,     4,     0,     6,     0,     0,     7,     4,     4,
       3,     3,     2,     2,     6,     5,     3,     5,     1,     1,
       1,     0,     1,     0,     1,     0,     2,     0,     1,     2,
       1,     1,     1,     0,     1,     1,     0,     2,     1,     0,
       1,     1,     1,     0,     5,     3,     0,     5,     3,     3,
       0,     3,     0,     2,     1,     3,     0,     1,     1,     0,
       2,     1,     3,     0,     5,     0,     1,     1,     0,     6,
       0,     1,     1,     2,     1,     1,     1,     0,     5,     2,
       0,     5,     0,     1,     1,     2,     1,     1,     1,     1,
       1,     2,     0,     5,     0,     1,     1,     0,     4,     4,
       3,     5,     1,     3,     3,     0,     6,     1,     1,     1,
       3,     2,     3,     1,     1,     0,     6,     1,     1,     1,
       3,     3,     4,     0,     6,     0,     2,     0,     4,     0,
       2,     1,     2,     4,     2,     3,     2,     3,     0,     3,
       0,     0,     6,     2,     1,     1,     2,     2,     8,     4,
       0,     1,     2,     1,     1,     1,     1,     0,     2,     4,
       3,     1,     1,     3,     4,     0,     0,     0,     2,     2,
       1,     1,     0,     2,     3,     0,     2,     3,     3,     3,
       2,     3,     4,     3,     4,     3,     4,     1,     3,     4,
       3,     3,     6,     1,     5,     6,     5,     7,     6,     8,
       5,     6,     4,     4,     5,     3,     4,     1,     3,     3,
       3,     3,     3,     3,     5,     5,     3,     3,     3,     3,
       3,     3,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
       2,     1,     2,     1,     1,     1,     2,     2,     1,     1,
       2,     2,     4,     1,     3,     1,     1,     1,     1,     1,
       3,     1,     1,     1,     1,     3,     2,     2,     2,     2,
       3,     3,     5,     6,     4,     4,     7,     2,     6,     5,
       6,     6,     4,     4,     5,     4,     6,     2,     4,     4,
       4,    10,     6,     8,     6,     4,     4,     6,     4,     4,
       4,     6,     4,     7,     7,     7,     6,     6,     6,     6,
       3,     4,     6,     8,     2,     2,     8,     8,     6,     6,
       2,     6,     6,     8,     8,     6,     8,     6,     2,     8,
       8,     2,     2,     2,     6,     6,     6,     4,     4,     8,
       4,     4,     4,     4,     3,     8,     4,     4,     6,     4,
       4,     4,     6,     8,     6,     4,     6,     1,     6,     4,
       4,     4,     4,     4,     6,     4,     0,     5,     6,     2,
       3,     0,     4,     0,     3,     0,     1,     1,     3,     4,
       4,     5,     4,     4,     4,     5,     4,     0,     0,     7,
       4,     5,     4,     5,     4,     4,     4,     4,     4,     5,
       0,     8,     0,     3,     3,     1,     4,     0,     1,     0,
       2,     0,     0,     4,     4,     2,     0,     3,     2,     3,
       2,     1,     1,     2,     1,     2,     1,     2,     2,     2,
       0,     3,     0,     1,     1,     3,     1,     3,     1,     3,
       0,     1,     0,     2,     4,     5,     1,     1,     1,     1,
       4,     1,     3,     3,     3,     0,     6,     0,     6,     0,
       8,     4,     0,     8,     0,    10,     6,     0,     8,     0,
      10,     6,     1,     2,     2,     0,     4,     3,     5,     2,
       0,     0,     7,     1,     0,     0,     6,     0,     3,     0,
       0,     5,     0,     1,     0,     1,     0,     2,     3,     3,
       1,     1,     0,     7,     0,     7,     1,     2,     0,     0,
       2,     0,     2,     0,     1,     1,     1,     1,     3,     1,
       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     0,     1,     1,     0,
       2,     0,     1,     0,     0,     3,     0,     0,     3,     2,
       0,     0,     4,     4,     2,     0,     1,     1,     3,     3,
       1,     2,     0,     1,     0,     4,     4,     2,     0,     1,
       1,     0,     1,     0,     1,     2,     5,     4,     1,     3,
       3,     1,     1,     1,     1,     1,     1,     0,     2,     3,
       4,     1,     2,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     0,     6,     0,     1,     3,     1,     3,     0,     2,
       3,     1,     2,     1,     0,     3,     0,     0,     7,     2,
       1,     0,     3,     0,     7,     0,     6,     4,     6,     4,
       4,     4,     0,     6,     4,     4,     5,     6,     4,     1,
       3,     1,     1,     3,     1,     0,     2,     0,     1,     0,
       0,     8,     0,     0,     6,     0,     1,     1,     1,     1,
       1,     2,     1,     1,     1,     3,     4,     0,     3,     3,
       1,     2,     2,     0,     3,     0,     5,     3,     1,     3,
       1,     3,     1,     1,     0,     1,     0,     4,     0,     1,
       3,     1,     1,     1,     0,     0,     6,     0,     0,    11,
       3,     1,     3,     3,     1,     3,     0,     1,     0,     4,
       0,     6,     0,     5,     0,     6,     1,     3,     2,     4,
       0,     2,     0,     2,     1,     1,     1,     0,     4,     0,
       1,     0,     1,     1,     3,     1,     1,     2,     2,     2,
       1,     1,     1,     1,     0,     3,     0,     3,     2,     4,
       4,     3,     4,     4,     1,     3,     3,     6,     2,     2,
       0,     6,     0,     6,     5,     2,     1,     1,     1,     5,
       5,     2,     2,     1,     4,     3,     2,     3,     2,     2,
       1,     3,     4,     3,     3,     2,     2,     1,     1,     1,
       1,     3,     3,     3,     3,     3,     3,     3,     3,     1,
       1,     1,     1,     1,     0,     1,     0,     2,     0,     1,
       1,     1,     0,     2,     0,     2,     0,     2,     2,     0,
       4,     0,     4,     1,     1,     0,     1,     1,     0,     1,
       1,     0,     4,     0,     0,     5,     1,     0,     4,     3,
       1,     2,     2,     2,     2,     2,     2,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     1,     0,     3,     0,     3,     3,     1,     0,     3,
       1,     2,     0,     1,     0,     3,     3,     2,     2,     0,
       5,     0,     1,     1,     0,     1,     1,     1,     2,     2,
       0,     0,     0,     0,    21,     1,     1,     0,     1,     0,
       1,     1,     0,     1,     1,     0,     2,     2,     1,     3,
       4,     3,     3,     0,     2,     2,     1,     3,     3,     0,
       4,     0,     3,     1,     1,     0,     3,     2,     3,     1,
       1,     2,     0,     2,     3,     1,     5,     1,     1,     2,
       2,     1,     1,     1,     1,     1,     1,     2,     2,     1,
       1,     1,     1,     1,     1,     1,     1,     2,     2,     2,
       2,     2,     1,     1,     1,     1,     1,     1,     1,     3,
       5,     1,     1,     1,     1,     1,     3,     4,     5,     1,
       5,     3,     2,     1,     3,     2,     2,     4,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     3,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     0,     4,     0,     1,     1,
       3,     0,     2,     1,     1,     1,     1,     0,     1,     0,
       1,     1,     1,     0,     2,     2,     2,     1,     2,     4,
       5,     4,     6,     2,     3,     3,     3,     5,     1,     3,
       3,     2,     2,     2,     1,     1,     4,     4,     1,     1,
       1,     1,     1,     0,     4,     1,     1,     1,     3,     3,
       1,     1,     2,     2,     2,     0,     3,     4,     3,     0,
       7,     1,     2,     1,     1,     1,     1,     1,     1,     0,
       5,     1,     1,     1,     1,     1,     3,     6,     6,     6,
       7,     5,     3,     8,     8,     8,     6,     0,     1,     1,
       2,     0,     1,     1,     3,     0,     3,     0,     3,     0,
       3,     0,     3,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     2,     2,     1,     3,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     1,     2,     0,
       1,     3,     1,     2,     2,     2,     1,     3,     3,     1,
       1,     3,     1,     3,     1,     1,     1,     1,     4,     5,
       4,     6,     1,     0,     3,     3,     1,     1,     0,     2,
       2,     2,     2,     0,     2,     0,     3,     2,     1,     2,
       2,     2,     2,     2,     0,     3,     0,     1,     0,     3,
       2,     0,     1,     2,     0,     1,     4,     4,     5,     2,
       3,     0,     1,     0,     4,     0,     1,     1,     0,     1,
       0,     2,     2,     1,     0,     1,     1,     2,     3,     2,
       0,     6,     3,     0,     0,     0,     1,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     2,     2,     3,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     0,     3,     1,     2,     1,     2,     3,
       3,     3,     0,     3,     3,     0,     7,     0,     3,     1,
       3,     0,     3,     2,     4,     0,     3,     4,     4,     0,
       0,     0,    16,     8,     7,     0,     0,     0,     0,     0,
      15,     0,     0,     0,     0,    12,     4,     4,     3,     4,
       3,     2,     1,     3,     5,     1,     1,     0,     1,     1,
       0,     2,     0,     0,     3,     0,     2,     5,     3,     3,
       3,     1
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const yytype_uint16 yydefact[] =
{
       0,   955,  1024,  2494,     0,     0,     0,     0,     0,     0,
    2496,   115,    64,  1668,  1783,  1784,  1581,  1607,     2,     0,
    1024,   165,     0,    76,  1609,     0,  1839,     0,     0,  1024,
       0,   444,     0,  1834,     0,     0,  1024,  1612,  1824,   239,
     165,  2496,     0,  1070,  2317,  1706,     0,     0,     0,     0,
    1689,     0,  2375,  1657,     0,     0,  2631,     0,     0,     3,
       8,    19,     0,    40,    24,    28,    14,    18,    13,    53,
      47,    38,    37,    10,    55,    56,    16,    44,    11,    12,
      15,    36,    43,    32,    39,    51,  1061,    22,    23,    29,
      45,    60,    20,    57,    54,    21,  1785,    25,    46,    41,
      33,    61,    34,    52,    35,    59,    27,    48,    26,     9,
      17,    49,    50,    42,    62,    30,    58,    31,     0,   889,
       0,     0,     0,     0,     0,     0,     0,   957,   872,  2561,
    2562,  2563,  1026,  1025,     0,  2496,  1951,  1009,  1035,  2023,
    2024,  2025,  2026,  2027,  2028,  2029,  2030,  1965,  2031,  2032,
    2034,  2033,  2035,  2036,  1966,  1967,  2037,  2038,  2039,  2041,
    2040,  2042,  1968,  1969,  2043,  2044,  2045,  2046,  1970,  1972,
    1971,  2047,  2050,  2049,  2048,  1973,  2051,  2052,  2053,  2055,
    1974,  1975,  1976,  1977,  1978,  1979,  2054,  1980,  2056,  1981,
    2057,  2058,  2059,  2060,  2061,  2062,  2063,  2065,  2064,  1982,
    2066,  2067,  2068,  2069,  2070,  2072,  2071,  2073,  2074,  2075,
    1983,  2076,  2077,  2078,  2079,  2080,  2081,  2082,  1984,  2083,
    2084,  2085,  2102,  1985,  2086,  2089,  2088,  2087,  2090,  2091,
    2092,  2094,  2093,  2095,  1986,  1987,  2096,  2097,  2098,  2100,
    2099,  2104,  2105,  2106,  1988,  2101,  2103,  2293,  2107,  2108,
    2110,  2109,  2111,  2113,  2112,  1989,  2115,  2114,  1990,  1991,
    2116,  2117,  1949,  2118,  1950,  2119,  2122,  2123,  2120,  2124,
    2129,  1992,  2121,  2125,  2126,  2127,  2128,  2130,  1993,  2132,
    2131,  2133,  2134,  2135,  2136,  2137,  2138,  2139,  2140,  2141,
    2152,  2145,  2147,  2148,  2150,  2146,  2151,  2155,  2154,  2156,
    2157,  2158,  2153,  2143,  2149,  2144,  2159,  2160,  2142,  2161,
    2162,  2163,  2164,  2165,  2166,  2167,  2168,  2169,  2170,  2171,
    2173,  2172,  2174,  2175,  2176,  2177,  2178,  2179,  2181,  2180,
    2182,  2183,  2184,  2186,  2185,  2188,  2189,  1994,  2187,  2190,
    2191,  2192,  2193,  2194,  2195,  1995,  1997,  1996,  1998,  2196,
    2197,  1999,  2198,  2199,  2200,  2000,  2201,  2202,  2203,  2205,
    2204,  2206,  2207,  2001,  2002,  2208,  2209,  2210,  2211,  2212,
    2213,  2214,  2215,  2216,  2217,  2218,  2219,  2220,  2221,  2223,
    2222,  2224,  2225,  2226,  2227,  2228,  2229,  2230,  2003,  2231,
    2004,  2232,  2233,  2005,  2234,  2006,  2235,  2236,  2007,  2237,
    2238,  2239,  2240,  2241,  2242,  2008,  2243,  2244,  2245,  2009,
    2247,  2246,  2248,  2010,  2250,  2251,  2011,  2249,  2013,  2252,
    2253,  2012,  2254,  2014,  2255,  2256,  2258,  2257,  2259,  2260,
    2261,  2015,  2262,  2016,  2263,  2264,  2265,  2266,  2267,  2269,
    2268,  2270,  2271,  2272,  2273,  2276,  2278,  2275,  2277,  2274,
    2279,  2280,  2281,  2282,  2286,  2287,  2288,  2289,  2283,  2284,
    2285,  2017,  2290,  2291,  2292,  2294,  2295,  2297,  2296,  2018,
    2019,  2298,  2299,  2022,  2300,  2301,  2302,  2306,  2303,  2314,
    2304,  2305,  2308,  2307,  2309,  2310,  2020,  2311,  2021,  2312,
    2313,   184,  1954,   167,  1955,  1964,     0,  2366,  2365,   993,
    1010,  2497,  2498,   540,   818,     0,     0,   819,     0,   539,
     817,   165,  2563,   120,     0,   536,   537,     0,     0,     0,
    1682,     0,  1605,  1605,  1605,     0,     0,  1605,  1605,     0,
    1608,  1605,   165,  1605,     0,    69,  1791,     0,     0,     0,
       0,  1948,     0,  1615,     0,     0,  1841,  1855,     0,  1856,
    1850,  2363,     0,  1095,     0,     0,     0,     0,   165,  1027,
       0,  1666,     0,   229,   238,   240,   241,   237,     0,  2498,
    2509,  1062,  1068,  1080,  2318,  2315,  1768,   241,   982,   982,
     982,   980,   982,  1690,  1687,     0,     0,     0,  1666,  1849,
    2615,     0,     0,     0,  2611,     0,  2616,     0,  1070,     0,
       0,     1,     5,     0,     0,  2097,  2200,  1781,  1779,  1943,
       0,   863,   890,     0,   868,     0,   866,  1960,  1959,  1958,
       0,   879,   878,   876,     0,   405,     0,   961,   962,   956,
     958,   960,     0,  2572,   870,  1007,  2495,     0,   186,     0,
      78,     0,     0,     0,  2501,     0,     0,     0,     0,   119,
       0,     0,     0,   116,  1095,  1095,  2563,  2565,  2567,   540,
     538,     0,     0,     0,  1686,  1685,  1684,     0,  1682,  2024,
    1965,  2036,     0,  1916,     0,     0,     0,  1370,     0,  1970,
       0,  2051,  2053,  1974,  1975,  1976,  1977,  1978,  1979,  1982,
       0,     0,  1105,  1105,  1102,     0,     0,     0,  2074,  2075,
    1925,     0,     0,     0,  1912,  1926,  2110,  2111,     0,  1914,
    1915,  2117,     0,     0,     0,  2131,     0,  2136,  1923,     0,
       0,  2168,  2170,     0,     0,  2174,  2175,  2176,  2177,  1898,
    1160,     0,  1102,  1911,  1922,  2192,  1905,  2201,  2206,  2207,
       0,  2216,     0,     0,     0,  2241,  2245,     0,     0,  2266,
       0,     0,  1102,  1897,  2286,  2287,  2288,  2289,     0,  1913,
    2017,  1924,     0,  2300,  1105,  1102,  1102,     0,     0,     0,
    2309,  2313,     0,     0,     0,  2533,  1159,     0,  1332,     0,
    1364,  1117,  1123,  1137,     0,  1152,  1186,  1187,  1189,  1287,
    1188,  1194,  1193,  1582,  1909,  1192,  1191,  1910,  1185,  1933,
    1954,  1932,     0,     0,     0,     0,     0,     0,     0,     0,
    1764,     0,     0,  1592,  1605,    71,     0,  2411,  2426,  2427,
    2423,  2428,  2446,  2429,  2433,     0,  2425,  2417,     0,  2432,
       0,  2421,  2430,     0,  2415,     0,  2431,  2436,  2447,  2419,
    2424,  2402,     0,  2409,  2413,  1945,  1476,  2378,  2379,     0,
      77,  1617,  1618,  1616,   953,     0,  2628,  1842,  1843,  1844,
       0,  1859,     0,  1022,     0,     0,   454,   445,     0,  1763,
    1762,     0,  1835,  2510,     0,     0,   998,  1620,  1667,     0,
    1619,  1830,     0,  1828,  1825,  1827,   230,     0,     0,   260,
    2411,     0,  2396,     0,  2504,  2501,  2511,  2546,  2541,  2540,
    2543,  2544,  1086,  2545,  1085,  2542,  2539,  1095,  1081,  1083,
    1084,  2321,  1726,     0,   752,     0,  1747,  1776,  1727,     0,
       0,  1776,     0,  1511,  1766,  1769,     0,  2330,  1740,   815,
     814,  1750,   813,  2331,  1762,     0,  1714,  1728,     0,  1691,
    1733,     0,  2332,     0,  1765,  1749,     0,  1748,  1511,  1776,
       0,  1707,     0,     0,     0,     0,   236,   976,   986,   978,
     973,     0,   979,   975,     0,  2629,  2630,  2376,   953,  1904,
    1902,  1903,  1952,  2612,  1901,  2620,  2622,  2608,  2610,  2617,
    1064,     0,  2515,     6,    63,     0,  1788,  2570,  2571,  2569,
     768,     0,  1105,  1961,  2564,   168,   877,     0,   406,   168,
       0,     0,     0,     0,     0,   407,   408,   344,   861,   959,
     874,     0,     0,   873,  2572,     0,     0,  1037,  1039,  1038,
    1055,   188,   185,   166,     0,   995,  1599,  1601,  1012,  2500,
       0,     0,  2502,  2506,  1158,  1157,     0,   113,   118,     0,
       0,     0,  2472,   117,  2462,  2568,  1095,  1095,  1095,  2560,
       0,  2548,  2555,  2556,  2559,  2558,  2557,  2554,     0,  2547,
    2550,  2551,  2553,  2552,  2572,  2566,     0,   820,   820,   820,
       0,  1669,  1672,  1676,  1680,  1683,     0,     0,  1481,  1207,
    1481,  1481,  1481,  1371,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1481,     0,
    1244,  1217,     0,  1245,     0,     0,     0,     0,     0,  1919,
       0,     0,  2533,     0,     0,     0,  1337,     0,     0,     0,
    2533,     0,     0,     0,     0,     0,     0,  1366,  1368,  1932,
    1481,     0,     0,  1481,     0,     0,     0,     0,     0,  1110,
    1250,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1481,  1481,     0,     0,  1481,  1258,     0,  1921,
       0,     0,     0,  1920,     0,     0,  1918,   749,   750,  1899,
    1917,     0,  1261,  1263,  1262,     0,  1481,  1481,     0,     0,
    1197,  1196,  1198,     0,     0,     0,     0,     0,     0,  1156,
    1155,  1154,  1153,     0,     0,     0,  1161,     0,  1162,  1163,
       0,  1164,  1165,  1166,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1199,     0,     0,     0,  1900,  1296,     0,
    1606,  1587,  1594,  1589,     0,  1764,  1590,  1598,   419,     0,
    1595,  2460,  1591,     0,  1583,     0,    70,     0,  1813,  1818,
       0,     0,     0,  1808,  1816,  1810,  1817,  1809,     0,     0,
    1819,  1812,     0,  1811,  1815,  1814,  1792,  1796,  1800,  1793,
    2412,  2410,  2444,  2443,  2448,     0,  2445,  2441,  2434,  2473,
    2438,     0,  2473,  2440,  2439,  2473,  2435,  2442,  2473,  2407,
       0,  1477,  1478,     0,  2377,     0,  1944,   954,     0,     0,
    1845,  1846,     0,  1045,  1860,  1861,  1857,  1476,  2364,  2367,
       0,   639,  1096,   455,     0,     0,   466,     0,     0,    66,
      67,     0,  1029,     0,  1028,  1032,     0,     0,     0,  1623,
    1613,  1622,  1831,  1832,     0,   228,   253,   248,   256,   250,
     252,   251,   257,   258,   259,   254,   249,   255,   242,     0,
    2410,     0,  2407,  2505,     0,  2507,  2524,  1069,  2512,  1092,
    1071,  1091,     0,  1082,  2316,  2319,  2327,  1772,   751,     0,
       0,  1739,     0,   540,     0,     0,     0,     0,     0,     0,
    1708,     0,     0,   583,     0,  1732,  1512,  1770,  1771,  1776,
       0,     0,  1776,     0,  1745,  1766,     0,  1776,  1703,     0,
       0,  1695,  1700,  1696,     0,  1702,  1701,  1704,  1692,  1693,
    1772,  1719,  1746,  1766,  1731,  1738,     0,  1718,  1725,     0,
    1736,  1766,  1766,  1776,  1776,   989,   988,   987,   983,   984,
     989,     0,  1688,  1405,     0,     0,  2609,  2623,  2607,  2618,
    2619,  2606,  1065,  2516,  1063,  2517,     0,     7,     4,  1782,
    1780,  1789,  1790,   769,   768,   531,   534,   533,     0,     0,
    1963,     0,   869,     0,  1764,   867,     0,     0,  1764,   355,
    1764,   409,   768,   881,     0,     0,   871,  1008,     0,     0,
     443,  1055,  1041,  1057,     0,   189,   191,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    79,    80,    96,   997,   996,
       0,   994,  1020,  1019,  1017,     0,  1018,  1016,  1011,  1013,
    1014,  2499,  2503,   541,   768,  1764,     0,   347,     0,     0,
       0,     0,     0,   540,     0,     0,  2549,   105,   821,     0,
       0,     0,  1674,  1602,  1670,  1604,  1943,     0,     0,     0,
    1678,     0,     0,  1482,  1481,     0,  1346,     0,     0,     0,
       0,  1372,     0,     0,     0,     0,     0,     0,     0,  1183,
       0,     0,     0,     0,     0,     0,     0,  1317,     0,  1346,
    1106,  1556,  1557,  1541,  1542,  1540,  1543,  1103,     0,  1544,
    1555,  1274,     0,     0,     0,     0,     0,     0,  1452,  1453,
    1454,  1455,  1463,  1456,  1457,  1458,  1465,  1470,  1459,  1460,
    1466,  1467,  1468,  1461,  1469,  1464,  1462,  1471,     0,  1451,
       0,  1474,  1472,  1475,  1473,     0,  1338,  1330,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1481,     0,     0,     0,  1481,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1481,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1240,     0,  1935,
    1934,     0,     0,     0,     0,  1201,     0,  1200,  1414,     0,
    2518,  2534,     0,  2333,  1333,  1335,     0,  1108,  1107,  1109,
    1120,  1113,  1118,  1111,  1115,     0,  1167,  2030,  1121,     0,
       0,  1149,  2533,  1490,  1150,  1135,  1140,  1141,     0,  1138,
    1139,     0,  1143,     0,  1142,  1146,  1147,  1148,  1151,     0,
       0,     0,     0,  1190,  1195,  1365,  1095,  1936,     0,  1585,
     419,   422,   421,  1596,   420,  1644,     0,   963,     0,     0,
      72,    74,  1805,  1802,  1801,  1803,  1807,  1806,  1804,     0,
    1820,  2437,     0,  2418,     0,  2422,  2416,  2420,     0,     0,
    2408,     0,  2414,  1480,  2105,  2185,     0,  1483,  2381,  1610,
    2627,  2300,  1847,  1840,     0,  1858,     0,     0,     0,  1023,
     640,     0,  1095,   453,   452,   451,   450,     0,   468,   448,
     456,    68,     0,     0,  1836,     0,     0,     0,     0,  1000,
    1621,     0,  1833,  1829,  1826,     0,     0,     0,     0,     0,
       0,     0,  2508,  2526,  2525,  2513,  1095,  1502,  1096,  1096,
    1932,  2321,  2324,  2325,  2328,  2326,     0,  2323,  2322,  2337,
       0,  1774,  1777,  1778,     0,     0,  1758,  1752,  1751,  1743,
    1753,  1744,  1761,  1760,  1759,  1716,  1715,  1524,  1525,  2239,
    1523,  1515,  1518,  1522,  1521,  1711,  1767,  1757,  1755,  1741,
    1776,  1756,  1754,  1697,  1698,  1699,     0,  1511,     0,  1774,
    1776,  1766,     0,  1776,  1776,  1735,  1737,     0,   977,   986,
     974,   981,  1423,  1422,     0,  1379,     0,  1381,  1378,  1377,
    1376,     0,  1422,  2613,  2621,  2625,     0,  1511,  2523,  2521,
     532,  1644,  1644,     0,  1962,     0,     0,     0,     0,     0,
       0,     0,   169,   178,     0,     0,   353,   354,  1644,   352,
     395,   396,   399,   400,   401,     0,     0,     0,     0,     0,
       0,     0,     0,   122,   402,  1644,  1644,   349,   375,   376,
     379,   380,   381,   382,   383,   345,     0,   350,   951,   951,
       0,  1644,  1644,   951,  1644,     0,     0,  1644,  1644,     0,
       0,  1644,     0,     0,   951,     0,  1644,   949,     0,     0,
    1644,  1644,  1644,  1644,   951,     0,     0,  1644,  1644,   443,
    1644,     0,     0,   969,     0,     0,  1644,     0,     0,  1644,
    1644,     0,  1644,   897,   948,   544,   565,   566,   862,   896,
     898,   910,   439,     0,   927,   950,     0,     0,   883,   885,
    2573,  2574,  2575,  1044,  1036,  1043,  1040,  1055,  1053,  1042,
     810,   809,     0,  1056,   187,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1600,  1021,  1015,   114,   768,
    1644,  1644,  1644,  1644,   351,   384,   385,   388,   389,   390,
     391,   394,   392,   393,     0,     0,  1764,     0,  2464,  2465,
       0,  2463,     0,  2601,     0,     0,     0,   167,   542,     0,
       0,   822,     0,     0,     0,     0,     0,  1483,     0,  1946,
    1677,  1405,  1681,  1680,     0,  1270,     0,  1310,     0,  1312,
    1313,  1314,     0,     0,     0,     0,     0,  1271,     0,  1215,
    1272,  1273,     0,     0,  1268,     0,     0,     0,     0,  1267,
       0,     0,     0,     0,  1316,     0,  1104,     0,     0,  1218,
    1219,  1212,  1204,     0,  1289,     0,     0,  1220,     0,     0,
       0,     0,  1276,     0,  1290,  1367,     0,  1369,  1936,     0,
    1322,  1277,  1225,     0,  1320,     0,  1226,  1291,  1292,  1293,
    1279,  1280,     0,  1295,     0,  1281,     0,     0,     0,     0,
    1228,  1326,  1324,     0,     0,     0,     0,  1328,  1230,     0,
       0,     0,  1229,     0,     0,     0,     0,     0,     0,     0,
    1232,     0,  1213,  1325,  1327,  1285,     0,  1241,     0,  2527,
    1413,  2535,  1414,     0,     0,  2529,  2519,  2524,  2532,  1205,
       0,     0,     0,     0,     0,  1937,  1114,  1119,  1112,  1116,
    2533,     0,     0,     0,     0,  1133,  1132,     0,     0,     0,
    2533,  1490,  1136,     0,     0,  1306,  1307,  1362,     0,  1588,
    1586,  1597,  1642,  1643,  1645,     0,  2461,   965,   964,  1593,
     963,    75,     0,  1799,  1821,  1794,  2477,     0,  2476,     0,
    2456,  2459,  1943,     0,     0,     0,  2391,  2385,  2392,  2394,
    2388,  2393,  2395,  2386,  2387,  2382,  2389,  1484,  1513,     0,
    1848,  1046,  1048,  1049,  1047,  1055,     0,     0,  2370,  2371,
    2369,  2368,   458,     0,   467,     0,   479,     0,     0,     0,
    1838,  1837,     0,  1030,  1033,  1034,  1005,  1004,  1006,   999,
    1001,  1002,   524,  1627,     0,     0,     0,  1633,  1614,  1624,
       0,  2074,  2286,  2289,   243,   246,   245,   247,     0,     0,
       0,     0,     0,     0,  1090,  1405,  1574,  1087,  1075,  1513,
    1503,  1074,  1097,  1093,     0,  2320,     0,  2283,  2348,     0,
       0,     0,     0,     0,  2338,  1773,     0,  1720,     0,  1742,
       0,     0,     0,     0,  1713,     0,  1734,  1694,  1722,  1712,
    1483,  1766,  1709,  1710,   991,   990,   985,  1422,  1405,     0,
       0,  1402,  1424,     0,  1424,  1405,  1405,     0,  1405,  1476,
    1419,     0,     0,  2624,  1504,  2522,     0,     0,   865,   172,
     175,   173,     0,   174,     0,     0,   404,   403,     0,  1764,
     397,   126,   125,   127,   128,  1538,  1539,  1535,  1536,  1534,
    1537,   130,   129,   124,   880,     0,     0,     0,  1764,   377,
     356,   357,   360,   361,   362,   952,   855,  1024,   931,     0,
     621,   855,   806,   811,   811,   929,     0,  1024,     0,     0,
       0,     0,     0,  1024,     0,     0,     0,  1644,     0,   942,
     892,     0,     0,     0,     0,     0,   943,     0,   893,  1644,
       0,     0,     0,     0,     0,  1024,     0,     0,     0,   441,
       0,  1024,   911,   972,   971,   970,     0,  1024,  1024,     0,
     571,   572,   570,     0,     0,     0,   563,   545,   768,   894,
     440,   895,   620,     0,   966,   617,   623,  1939,     0,     0,
       0,     0,   136,  2577,     0,  1443,   190,    97,    86,    82,
     101,  1548,  1549,  1547,  1545,  1546,   102,    84,    85,    89,
      88,    90,    91,    92,    87,    93,    83,    94,   103,   104,
      81,     0,     0,     0,     0,  1764,   386,     0,     0,  1644,
     346,   363,   364,   367,   368,   369,   370,   371,   374,   372,
     373,     0,  2468,  2470,     0,     0,   340,   339,     0,   131,
    2595,     0,     0,   620,   106,   439,   543,   546,   848,   850,
     849,   836,   835,   107,   109,   111,  1603,  1680,  1405,  1502,
    1944,  1483,     0,  1679,     0,     0,  1311,  1347,     0,  1373,
       0,  1209,   723,   723,   723,  1356,   708,  1360,  1351,   723,
    1352,   723,  1354,     0,   754,     0,   753,     0,  1169,  1184,
       0,     0,     0,     0,     0,     0,  1318,  1315,     0,     0,
       0,     0,  1341,     0,     0,     0,  1214,     0,  1301,  1323,
    1321,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1329,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1202,  1095,  2536,  2538,  1066,
       0,  2528,  2530,  2334,  2335,  2336,   857,  1334,     0,  1130,
    1126,     0,  1124,  1489,  1145,  1144,     0,     0,     0,  1134,
    1096,  1297,  1095,     0,  1363,  1938,   418,   582,  1584,    73,
    1797,  2474,     0,  2485,     0,     0,     0,     0,     0,     0,
       0,  2380,  1514,  1654,     0,  1055,  1059,  1953,  1851,  2373,
    2374,  2372,     0,   459,   460,   462,  1096,   476,   454,     0,
     446,   449,     0,   458,     0,  1003,  1080,     0,  1646,  1631,
    1638,  1632,     0,     0,     0,  1630,  1928,  1927,  1934,  2511,
       0,     0,  2401,     0,     0,     0,  2514,  1483,  1483,  1568,
       0,     0,  1072,  1077,  1073,  1076,     0,  1094,  1101,  1100,
    1929,  1936,     0,     0,     0,     0,   756,   755,   764,     0,
       0,     0,  2333,     0,   760,   762,   761,  2343,   759,  1775,
    1511,  1730,  1729,  1526,  1517,     0,  1520,  1519,  1705,  1511,
    1724,  1776,     0,     0,  2518,  1417,     0,  1404,  1403,  1425,
       0,  1405,  1424,  1424,     0,  1384,  1383,  1658,  1661,     0,
    1382,  1441,  1407,  1080,  2614,  2626,     0,   767,   766,   581,
     763,   580,   177,   176,   182,   183,  1552,  1553,  1550,  1551,
     410,   423,  1554,   424,   398,   123,   411,   412,   378,     0,
     358,   622,   856,   914,     0,     0,     0,   811,   616,   855,
     820,   812,   855,   855,     0,     0,   555,   552,   933,   558,
     912,   904,   913,   924,   926,     0,   554,   573,     0,     0,
     561,   855,   899,   940,   941,   963,   549,     0,   592,   593,
     591,   567,   574,   550,   551,   935,     0,  1498,  1500,  1508,
     557,   556,  1559,  1558,   560,     0,   553,     0,   946,   919,
       0,   589,   587,   584,   586,   585,   590,   588,   562,   559,
     575,   909,     0,   951,   951,   928,     0,   600,   601,   603,
     604,  1942,     0,   968,   930,     0,   605,   618,   606,     0,
       0,   579,   578,   576,   577,     0,   146,     0,     0,   882,
       0,   139,   137,   148,     0,     0,     0,  1446,     0,  1447,
    1444,  1445,     0,    98,   100,   417,   416,   415,   414,   387,
       0,     0,     0,  1764,   365,  2469,  2467,  2466,     0,     0,
    2602,   343,   341,   342,     0,     0,   192,   598,   599,   597,
     596,     0,   427,     0,  2000,   425,     0,   438,     0,  1862,
     768,   547,     0,     0,     0,     0,  1483,  1527,  1947,  1673,
       0,  1242,  1374,     0,     0,   724,  1348,   776,  1358,     0,
    1359,   710,   709,   725,  1350,  1353,  1357,  1355,  1208,  1216,
    1264,     0,  1182,  1265,  1266,     0,  1288,  1211,  1210,     0,
       0,     0,  1248,  1249,     0,  1339,     0,     0,  1222,     0,
    1224,     0,     0,  1303,  1278,  1294,  1251,  1282,     0,  1227,
    1203,     0,  1252,     0,  1257,  1255,     0,  1231,     0,     0,
    1238,     0,  1236,     0,  1237,     0,  1239,  1284,  1286,  1415,
    2537,  1067,     0,     0,  1336,  1122,     0,  1131,  1128,     0,
    1125,  1097,  1308,  1298,     0,  1795,  2475,     0,  2406,  2458,
    2457,  2478,  2478,  2478,     0,  1485,     0,  1611,  1050,  1055,
    1059,     0,  1051,  1862,   463,     0,     0,     0,   483,     0,
     481,   457,     0,  1031,  1095,  1628,  1640,     0,  1648,     0,
       0,  1625,  1635,     0,     0,     0,  1634,   244,     0,  2398,
    2399,  2397,  1513,  1491,     0,     0,  1580,     0,  1575,  1088,
       0,  1099,  1098,     0,  2350,     0,  2349,  2361,  2362,  2359,
    2360,  2358,  2339,     0,  2345,  2344,     0,     0,     0,  2355,
    2346,     0,     0,  1721,  1516,  1723,  1717,   992,  2524,  1476,
    1409,  1405,  1380,  1405,  1391,     0,     0,  1405,  1387,  1385,
    1389,     0,  1483,     0,  1406,  1438,  1095,  1931,  1505,  1508,
     359,   916,     0,   855,   807,   808,   820,     0,   820,   820,
       0,     0,   903,     0,  1012,     0,   908,   764,   568,   939,
     938,   569,     0,   901,     0,  1509,  1510,  1501,   442,   900,
     921,   906,  1820,   932,   620,   967,   788,   704,   653,   644,
     723,   647,   646,   690,   723,   658,   708,   706,   676,   708,
     708,   683,   682,   700,   686,   666,   776,   776,   665,   703,
     776,   687,   685,   689,     0,   691,   708,   696,   684,   688,
     705,   681,   678,   702,   723,   723,   723,   662,   701,   776,
       0,   694,   723,   624,   727,   664,   776,   783,     0,     0,
     723,   725,  1941,   147,   135,     0,     0,   884,   886,     0,
       0,   887,  2579,     0,  2581,     0,  1058,     0,    95,     0,
       0,   348,   413,   366,  2471,     0,   203,  1095,     0,     0,
     193,   195,   196,     0,     0,     0,   429,  1864,  1863,   426,
     527,   548,     0,     0,     0,  1680,  1675,     0,  1671,     0,
    1375,     0,     0,     0,     0,   770,   781,   779,   773,     0,
     777,   778,  1349,     0,     0,   726,  1361,   723,  1179,   708,
    1173,  1175,  1171,     0,   691,  1174,   723,     0,   776,  1178,
    1170,     0,  1319,     0,     0,  1342,     0,     0,     0,     0,
       0,     0,     0,  1206,     0,  1299,     0,     0,     0,     0,
       0,     0,  1235,  1233,  1234,  1513,  2518,   858,  1127,     0,
    1309,     0,     0,     0,  2483,  2483,  2483,  1653,  1652,     0,
    1651,  1655,  1052,  1060,     0,   461,   464,     0,   456,     0,
     480,     0,   447,   525,     0,     0,     0,  1649,  1637,  2515,
    1626,  1629,  1936,  2400,  1079,     0,  1486,  1579,  1576,     0,
    1569,  1571,  1573,     0,  1930,     0,     0,  2354,  2340,   765,
       0,     0,     0,     0,  2341,  1410,  1408,  1418,     0,  1376,
    1405,  1405,     0,  1376,     0,     0,     0,  1660,  1502,  1662,
    1442,     0,  1420,     0,  1507,     0,     0,   915,     0,     0,
       0,     0,     0,     0,   945,     0,   966,   905,   925,   947,
     936,  1024,  1499,   920,   922,  1000,     0,   602,     0,   792,
     652,   645,   663,   661,   712,   707,     0,   712,   712,   672,
     690,   667,     0,   776,   680,   671,   692,   695,   697,   699,
     712,     0,   776,   660,   659,   669,   656,   712,   735,     0,
       0,     0,     0,   731,     0,   786,     0,   738,     0,   625,
     728,   730,     0,     0,     0,   693,   776,   649,   784,   783,
     651,   776,   783,   712,   712,     0,   133,   138,   149,   150,
     875,  2578,     0,  2576,     0,  1054,  1448,    99,     0,     0,
     206,   204,   205,     0,   199,   201,   196,  2589,     0,  2596,
       0,     0,  2594,   428,   431,   542,   528,     0,     0,  1508,
     853,     0,     0,  2239,  1528,  1243,   721,   719,   722,   720,
     772,   771,   775,     0,   774,   783,     0,     0,  1181,  1176,
     692,  1180,  1172,  1177,  1269,  1246,  1247,     0,  1340,  1331,
    1275,     0,  1223,  1300,     0,     0,  1283,  1253,  1256,  1254,
    1259,  1260,  1087,  1087,   594,  2531,  1129,  1822,  2486,     0,
       0,  2482,  2480,     0,  2481,  2479,  2449,     0,  2404,  2405,
    2403,  2390,     0,     0,     0,  1095,   469,     0,   486,   485,
     482,  1513,  1639,  1641,  1647,  1636,     0,  1487,  1502,   757,
    1572,     0,  1089,  2352,  2351,  2353,  2347,     0,     0,     0,
       0,  1392,     0,  1396,  1401,  1397,     0,  1388,  1386,     0,
    1527,  1430,  1431,     0,     0,  1436,  1440,  1513,  1508,   918,
       0,   619,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   944,  1906,   934,   966,   902,     0,   907,   564,
       0,   791,     0,   796,   716,   717,   718,   673,   713,   715,
       0,   675,   643,   668,   698,   674,     0,   670,   657,   741,
     740,  1105,   733,   748,   628,     0,     0,   739,     0,   729,
     737,   732,     0,   648,   650,   654,   655,   641,   642,  1940,
     140,   888,   280,  2580,  1070,     0,  2585,   121,  2593,  2603,
     203,     0,     0,   144,     0,   194,   764,   197,  2515,   439,
       0,   434,   823,     0,   852,     0,   825,   827,  1529,     0,
     782,   780,     0,  1343,  1508,     0,  1302,  1304,  1416,   595,
       0,  1798,  2455,  2454,  2453,  2450,     0,     0,     0,     0,
       0,     0,  2484,  2488,  1650,     0,     0,     0,   477,     0,
       0,   511,   526,  1495,  1508,     0,  1513,     0,  1577,  1570,
    2357,  2356,  2342,  1411,     0,     0,     0,     0,     0,  1449,
    1659,  1426,  1426,  1437,  1421,  1506,   917,     0,     0,   607,
       0,     0,  1908,  1907,   937,     0,   789,     0,   793,   794,
     795,     0,   787,   714,     0,   859,     0,   747,  1105,   736,
    1095,   745,   744,   742,   743,     0,   142,   306,     0,   292,
     278,     0,     0,     0,   282,   151,   154,   152,     0,   153,
     159,     0,   160,   161,   162,   163,   164,   155,   304,   305,
     158,   156,   157,     0,  1956,     0,  1957,  2583,     0,     0,
    2582,   170,   200,     0,     0,   136,   145,  2597,   746,   432,
    1862,     0,  2511,     0,  1644,   108,   824,   844,   843,   829,
       0,  1508,     0,     0,   110,   826,   846,   833,   112,   828,
     845,   831,  1530,   711,     0,  1345,  1221,     0,  2451,  2489,
    2492,  2490,  2491,  1531,     0,  2493,  2487,     0,  1852,  1096,
       0,   470,     0,   473,   475,   489,     0,  1644,  1644,     0,
       0,  1644,  1644,  1644,  1644,   504,   512,   514,     0,  1496,
    1497,     0,  1492,  1494,  1488,  1560,   758,  1865,  2518,  1393,
       0,  1398,     0,  1390,     0,     0,  1434,  1432,     0,   613,
     823,   609,   611,     0,   790,     0,     0,   776,     0,   776,
     734,     0,   141,     0,   134,     0,     0,   291,   294,     0,
       0,   297,   287,   286,   288,     0,   281,   280,   280,   334,
     285,   331,   330,   323,  2515,     0,     0,     0,  2604,   202,
    1095,   148,     0,   430,   436,   435,   838,     0,   830,     0,
     851,   854,     0,   834,   832,  1508,  1823,  1533,  1532,  1656,
    1664,     0,   757,     0,   478,   471,     0,     0,   487,     0,
       0,  1644,  1644,     0,     0,     0,     0,     0,   484,   513,
    1644,  1508,     0,  1078,     0,  1873,  1412,     0,     0,  1450,
       0,  1427,     0,     0,     0,   615,   823,   608,   825,   827,
       0,   802,     0,   801,     0,   798,   797,   677,   860,   679,
     629,   143,   307,   318,   321,   313,   293,     0,     0,     0,
     283,   280,     0,   267,   265,   266,   272,   273,   274,   275,
     276,   277,   268,   271,   269,   270,   280,     0,   211,     0,
       0,  2584,     0,  2586,     0,   180,   179,   171,     0,   280,
    2590,     0,  2598,  2515,   837,   842,   841,   839,   840,   847,
    1344,     0,     0,  1853,   465,   477,   474,   497,   490,   493,
       0,   523,   517,     0,     0,   519,   520,   518,   515,   508,
       0,   506,     0,  1493,  1561,     0,     0,     0,     0,  1866,
    1868,     0,  1578,  1395,  1400,  1429,  1428,  1443,     0,   614,
     610,   612,   923,   804,   805,   803,     0,     0,   631,   630,
     632,     0,     0,   280,   314,     0,   289,     0,     0,     0,
       0,   209,   337,     0,   207,   325,   325,  2587,  2588,   181,
    2605,     0,   150,   170,   437,  1663,  1665,  1879,   472,   497,
       0,   495,     0,   491,   488,   492,   521,   522,     0,   505,
       0,   516,     0,     0,     0,     0,     0,  1867,     0,     0,
    1874,  1876,     0,     0,     0,     0,     0,   636,   626,   633,
     635,   315,   321,   311,   319,   280,     0,     0,   279,   298,
     333,   210,     0,   335,     0,   280,     0,   324,   326,   328,
       0,   132,  2599,     0,  1865,   494,     0,   502,   498,   500,
     503,   511,   510,   507,  1095,  1871,  1872,     0,  1869,     0,
       0,  1875,  1435,  1433,   800,   799,   638,   637,   634,     0,
     312,     0,     0,   310,   290,   295,   280,     0,   280,   222,
     221,     0,   213,   261,   332,     0,   212,  2591,   280,     0,
    1873,   496,     0,     0,   509,     0,     0,  1564,  1566,  1870,
    1878,  1877,   316,     0,   280,     0,   280,     0,   280,     0,
       0,     0,     0,     0,   208,   280,  2600,     0,  1881,   501,
     499,  1096,  1562,  1095,     0,   308,   280,   296,   301,   338,
       0,   216,   262,   263,     0,   219,  2592,  1880,     0,  1885,
    1567,  1565,   280,   280,   297,   300,   336,     0,     0,   214,
     215,   227,   226,   218,     0,     0,     0,  1892,   280,   280,
     302,   235,   233,   280,   223,   231,   225,     0,   232,   264,
     220,  1883,  1884,  1882,  1887,     0,     0,  1889,  1890,     0,
    1854,     0,   217,   234,  1891,  1886,     0,  1893,  1895,     0,
     224,  1888,     0,  1095,  1894,     0,  1096,  1896
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    58,   603,  1448,    59,    60,    61,    62,    63,  1319,
      64,   815,  1246,  1750,  1751,    65,   542,    66,  1024,  1505,
    1506,  2972,  2973,  1507,    67,  2088,  3012,  3013,  3014,  1524,
     512,   513,  1942,  1943,  1049,  2995,  2959,  3770,  2963,  3886,
    4024,  3925,  2018,  3311,  3771,  3772,  3895,   537,  2086,  1462,
    4048,  1922,  4157,  1923,    68,   638,  1022,  1484,  1485,  3329,
    3330,  3591,  3331,  3583,  3584,  3585,  3586,  4295,  4131,  4234,
    4296,  4371,  4407,  4413,  4414,  4341,  4423,  4424,  4425,  4411,
     887,  4426,    69,   565,   566,   889,  1348,  2334,  1349,    70,
    4342,  4409,  4132,  4133,  4031,  4134,  3898,  4135,  4035,  4136,
    3901,  4137,  4138,  4139,  4140,  4287,  4141,  4030,  4334,  4128,
    4129,  4336,  4388,  4405,  4142,  3908,  4025,  4221,  3909,  4026,
    4282,  4124,  4283,  4329,  4384,  4125,  4222,  4332,  4225,  4143,
    4149,  4297,  4144,  4150,  4145,  3913,  4042,  4148,  4040,  4147,
    4338,  4292,  2578,  2994,   621,   622,   649,  2076,   623,  1038,
     996,  1464,  1955,  1956,  2440,  2441,  2560,  2561,  2562,  1947,
    1948,  1949,  2064,  2065,  2066,  1929,  1930,  1931,  1468,  1926,
    1927,   624,   997,  1007,  1950,  1951,  1952,  2566,  2068,  2069,
    2070,  2071,  1953,  1743,  1954,  2850,  2584,  3005,  3595,  3788,
    3339,  3932,  4163,  3006,  3007,  2510,  2915,  2489,    71,   554,
     867,  1316,  2307,  1317,  2309,  2732,  2733,  2734,  1793,  1794,
    3666,  1798,  2306,  3828,  4175,  3972,  3973,  2736,  3971,  2740,
    3129,  3130,  3429,  3668,  3831,  4180,  4077,  4254,  4178,  4250,
    4179,  4252,  4353,  4308,  4309,  4088,  4190,  4191,  4258,  4311,
    3985,  3986,  3987,  2327,  2746,  3671,  3597,  2058,  1454,  1455,
     514,   515,   516,   646,  2585,  2004,  2586,  2587,  2932,  2006,
    2007,  2706,  1382,  2928,  2901,  3642,  3001,  2936,  2937,  2938,
    2939,  2940,  4010,  4108,  4109,  4106,  2946,  2868,  2449,  2450,
    2515,  2949,  3293,  3548,  4220,  4278,  4279,  4280,    72,   864,
    3786,  3516,  3531,  3295,  3296,  3297,  3298,  3299,  3300,  3301,
    3030,  3031,  3737,  3738,  3739,  3025,  3026,  3366,  3549,  3550,
    3551,  3787,  3752,  1170,  3359,  2787,  2788,  3838,  2796,  2797,
    2838,  3174,  2839,  1458,  3360,  3361,  3362,  3560,  3552,  2948,
    3509,  3730,  3733,  3872,  4115,  2451,  2869,  2452,  2872,   950,
     517,  2453,  2454,  1538,  1539,  3935,  3944,  3948,  3936,  3949,
    3945,  3937,  3938,  3939,  3951,  3947,  2591,  3598,  3599,  2861,
    3094,  3874,    73,  1472,   990,   999,   995,  1014,   633,  1473,
    2019,  2522,  3570,   611,  2008,  3501,  3224,  3505,  2009,  2881,
    2010,  3211,  3487,  2011,  3240,  3503,  3727,  2882,  2883,  2012,
    2013,  2014,  3223,  3232,  3725,  2455,  1298,   126,   127,   629,
     630,   631,  2259,  2944,  2496,    74,  1430,  1425,    75,   962,
     957,   958,  1428,  1429,  1888,  2385,    76,   641,  1511,    77,
    1327,  2319,  2320,  2321,    78,  1015,    79,    80,   642,  1518,
    1519,  1520,    81,  1310,   134,    82,   875,  1322,  1324,  1325,
      83,   637,  1016,  1017,  1018,  1019,  2024,    84,  1784,  2291,
    2292,  2293,  2294,  1481,  2524,  1482,  1483,  2033,  3122,    85,
      86,   600,  2214,   571,   896,   572,   573,  1827,  2347,  3643,
     907,   908,   909,  2772,  1360,  1361,  1362,  1790,  2777,  1103,
    1100,   780,   781,   782,   783,  1194,  1195,  3553,   784,  1204,
    1709,  3042,  3380,  1569,  1570,   785,   786,   787,   788,   789,
     790,  1736,  3062,  3063,  3395,  2244,  2245,  2246,   791,  2133,
    3049,  2146,   792,  1187,  1694,  1627,  3387,  3055,  3627,  3803,
    1555,  2108,  2623,  3033,  2703,  2208,  1126,  1127,  1084,  2115,
    1561,  1895,  1896,  1897,  1898,  1899,  3475,  3474,  3476,  3844,
    3692,  3846,  3696,  2396,  1900,  1901,  2813,  3690,  3998,  2209,
    2210,  2211,  3405,  2814,  3191,  2832,  2833,  3707,  2387,  1902,
    2820,  4006,  3704,  3705,  4104,  4103,  3706,  3480,  3481,  3204,
    3205,  2968,  2969,  2970,  3848,  1618,  1619,  1625,  1293,  1294,
    1556,  2288,  2720,  3678,  3835,  2235,  3446,  3833,  3992,  2015,
    2907,  2908,  2349,  2350,  2836,  3208,  3237,  1385,  3644,  2722,
    1861,  2803,  2804,  3348,  3965,  4412,  1588,  2536,  2851,  2852,
    1590,  2914,  4093,  4262,  4356,  4357,  4358,  3156,  3157,  3450,
    3451,  2351,  2769,  3158,  3679,  3997,    87,   521,    88,  1748,
    2250,  1243,  2264,  1026,  1542,  1543,   803,   534,    89,   543,
    2289,    90,   561,  1811,   854,   879,  1330,  1331,  2328,  2747,
    2754,  2329,  2759,  3439,  2749,  3135,  3136,  2254,  2255,  2750,
    3138,  3436,  3419,  3420,  3117,  3663,    91,   588,  3202,  2827,
    2828,  4069,  4070,   880,    92,   520,  1071,  2097,  1548,  2096,
    1072,  1073,  2099,   667,   668,    93,   964,   584,  1407,  1408,
    1409,  1877,    94,   576,   951,  2800,  2809,  1855,   871,  1239,
    1389,   954,  1390,  1841,  2367,  1371,    95,   986,   985,    96,
     607,  1450,    97,   816,  1266,  1760,  2710,  3105,  1267,  1268,
    2265,  3811,    98,   562,   884,   885,  1333,  1813,    99,   556,
     872,  1804,   100,   546,   859,  1302,  1783,   101,   102,   861,
    3123,  4072,  4247,   550,  1786,  1306,  3340,  4095,  4199,  4200,
    4202,  4270,  4271,  4304,  4399,  4433,  4417,  4436,  4437,  4440,
    4447,  4448,   794,   973,   795,  3722,   796,   797,  2755,  2756,
    3209,   798,  2757,   799,  2862,  1027,  1545,   540,   492,   618,
     974,  2728,   801,  3915,   993,  1042,   494,   495,   103,   911,
     575,  1364,  1365,  1366,  1836,  1837,   955,  2223,  1838,  1839,
    2364,  2359,  3458,  3180,  3172,   104,   862,   499,  1308,  1309,
    2300,   105,   587,   106,  1295,  1777,  1778,  2285,  2719,  2286,
     107,   892,   108,   841,  1771,   842,  1271,   843,   844,  1285,
    1279,  1288,  1282,  3816,  3655,  3656,  2273,  1242,  1043,  2080,
    2988,  1044,  1763,  2267,  2268,  3414,  3658,  3108,  3822,  3823,
     109,   135,   502,   644,  1033,  1354,   110,   111,   112,   113,
    1357,  1443,  2343,  1444,  2215,  1445,  1446,  1909,  1825,  1690,
    1691,  3092,  1184,  1185,  2218,  2676,  2677,   910,   653,  1059,
    1051,   128,   129,   130,   656,   657,   131,  1012,  1013,  2523,
    2965,  3313,  3573,  3574,  3776,  3920,  1053,  3782,  4241,  4375,
    1054,  1055,  2996,  3784,  4052,  4243,  4348,  1056,  2575,  3326,
    3921,  4159,   114,   975,   597,  1441,  1436,  1438,  1905,  2403,
     115,   116,   117
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3759
static const int yypact[] =
{
    4770,  2483,    80, -3759,  -133,   210, 47807,   109,   830,   830,
    -192,  2822, -3759, -3759, -3759, -3759, -3759,  2991, -3759, 47807,
      80, -3759, 23990, -3759, -3759,   -40, -3759,   178,   830,    80,
     345, -3759, 47807, -3759,   449,  1283,    80, -3759, -3759, 42927,
   -3759,  -192, 47807, -3759,   629, -3759, 42927,  1260,  -103,   591,
     611,   971, -3759, -3759, 47807,  2575, -3759,  -135,  1195,  1020,
   -3759, -3759,   892, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, 24604, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  1218, 47807,
    1256, 47807,  1189, 47807, 41097, 47807,   969,   986,  1339, -3759,
   -3759,  1293, -3759, -3759,   830,  -192, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759,   921, -3759, -3759,  1042, -3759, -3759, -3759,
   -3759, -3759,  1552,  1370, -3759,  1393, 41097, -3759, 47807, -3759,
   -3759, -3759,  1046, -3759,  1074, -3759,  1087,  1427,  1447,  1458,
      57, 10885,  1468,  1468,  1468, 47807,  1514,  1468,  1468, 47807,
   -3759,  1468, -3759,  1468,   830, -3759, -3759,  4293, 47807,  1432,
     156,   -28, 41097,  1320, 47807,  -133,    42, -3759,  1490, -3759,
   -3759, -3759,   830, -3759,  1678,  1567,   268, 47807, -3759, -3759,
     830,   922,  1124,  1215, -3759, -3759,  1363, -3759,  5377,   124,
   -3759, -3759, -3759,  2937, -3759, -3759,  6053,  1363, -3759, -3759,
   -3759,  1246, -3759, -3759, -3759, 47807,  -133,   830,  1576, -3759,
   -3759,   132,   132,   132, -3759,   132, -3759,   132, -3759,  -135,
    1253, -3759, -3759,  1262, 47807,   582,   592, -3759, -3759,  1269,
     -56, -3759,  1330, 38657, -3759, 47807, -3759, -3759, -3759, -3759,
    1573, -3759, -3759, -3759,  1023, -3759, 23990, -3759, -3759, -3759,
     986, -3759, 47807,  1406, -3759, -3759, -3759, 23990,  1292, 47807,
   -3759, 23990, 23990,   197,  1052,  1398, 47807, 47807,  1764, -3759,
    1925, 38657,  1517, -3759,   260,  1383,  1293,  1948, -3759,  1370,
   -3759, 47807, 47807, 47807, -3759, -3759, -3759, 43537,    57,  1334,
    1340,  1348, 15941, -3759,  1375,  1378,  1380, 10885,  1395,  1405,
    1407,  1426,  1433,  1438,  1471,  1473,  1483,  1491,  1516,  1522,
    1525,  1535,  1541,  1541,  1545,  1551,  1554,  1565,   779,  1578,
   -3759,  1580,  1588,  1591, -3759, -3759,  1595,  1598,  1604, -3759,
   -3759,  1607,  1609,  1615, 11517,  1618,  1622,  1624, -3759, 20911,
    1627,  1631,  1634,  1640,  1642,  1654,  1660,  1673,  1702, -3759,
   -3759, 10885,  1545, -3759, -3759,  1706, -3759,  1709,  1717,  1719,
    1725,  1727,  1732,  1735,  1759,  1761,  1771,  1783,  1786,  1792,
    1805,  1815,  1545, -3759,   796,  1821,  1827,   847,  1832, -3759,
    1853, -3759,   145,  1864,  1541,  1545,  1545,  1870,  1875,  1887,
    1889,  1907, 15941, 15941, 15941, 10885, -3759, 47807, -3759, 47807,
    2004,  2850, -3759,  2762, 15941,   865, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759,  1361,  1603, -3759, -3759, -3759, -3759, -3759,
    1909,  1362,  1846, 47807, 47807, 47807,  2008, 47807, 47807, 41097,
    1677, 47807, 38657, -3759,  1468,  1628,  3646,  1911,  1980,  1742,
   -3759, -3759, -3759, -3759, -3759,  2078, -3759, -3759,  1972, -3759,
    2177, -3759, -3759,   128, -3759,    83, -3759, -3759, -3759, -3759,
   -3759, -3759,  2182,  1921, -3759, -3759,   129, -3759, -3759, 47807,
   -3759, -3759, -3759, -3759,  2347,  2080, -3759, -3759, -3759,   127,
    2529,   209, 23990, -3759,  1954, 10885,  1344, -3759,  -212, -3759,
   -3759,  2310, -3759, -3759, 38657, 23990, -3759, -3759, -3759, 21527,
   -3759, -3759,  2543, -3759,  1994, -3759, -3759,  1603,  3583, -3759,
    1911,  2270, -3759,  2274,  2185,  1052,  2081, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2043,  2937, -3759,
   -3759, -3759, -3759,  2508, -3759,  2203, -3759,   -33, -3759,  2051,
    1034,   -33, 39267,  2420,  1353, -3759,   144, -3759,  2504, -3759,
   -3759, -3759, -3759, -3759,  2194,  2179, -3759, -3759,   323,  1592,
   -3759,  2553, -3759,    24, -3759, -3759,  2213, -3759,  2420,   -33,
    1353, -3759,  2449,  2578,   507,  -115, -3759, -3759,  1144, -3759,
   -3759,  2674, -3759, -3759, 23990, -3759, -3759, -3759,  2347, -3759,
   -3759, -3759, -3759,  2156, -3759,  2431,  2268, -3759, -3759,    40,
   -3759,  2172,   -31,  2647, -3759,   660, 34997, -3759, -3759, -3759,
    2685,  2701,  1541,  2188, -3759, -3759, -3759,  2811, -3759, -3759,
    2192,  2713,  2713,  2713,  2827, -3759, -3759, -3759, -3759, -3759,
   -3759,  2369,  2238, -3759,  1406, 23990,  2592,  2207, -3759, -3759,
    2450, 10885, -3759, -3759,  4058,    28, -3759, -3759,   131, -3759,
    2783,  2410, -3759, -3759, -3759, -3759,  2671, -3759, -3759,  2811,
    2732,  2713,  2625,  2220, -3759, -3759, -3759, -3759, -3759, -3759,
    1653, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  1707, -3759,
   -3759, -3759, -3759, -3759,  1406, -3759, 23990, -3759, -3759, -3759,
   23990, -3759,  2222, -3759,  2217, -3759, 10885, 10885,   317,  2786,
    2849,  2849,  2849,  2004,  2269, 10885, 10885, 10885, 10885, 10885,
   10885, 10885, 10885, 10885, 10885, 10885, 10885, 10885,  1055,  2241,
   -3759, -3759,  1715, -3759,  2243, 10885, 10885,  2335, 10885,  1603,
   10885, 25218, -3759,  5744, 10885,   347,  2734, 10885, 10885, 10885,
   10885,  2985, 10885, 10885, 10885, 25218,  2868,  2249, -3759,  2245,
    1168, 10885, 10885,  1179, 10885, 10885, 10885, 10885, 10885, -3759,
   -3759, 10885, 10885, 10885, 10885, 15941, 10885, 10885, 10885, 10885,
   10885, 10885,  2849,  2849, 10885, 10885,  1335, -3759, 10885,  1603,
    2429,  2429, 10885,  1603,  7725, 10885, -3759, -3759, -3759, -3759,
   -3759,  2254, -3759, -3759, -3759, 25218,  2849,  2849, 10885, 10885,
    2786,  2786,  2786,   247,  2257,   704, 10885, 26446,  2252, -3759,
   -3759, -3759, -3759, 10885, 10885, 10885, -3759, 15941, -3759, -3759,
    1880, -3759, -3759, -3759, 12149, 15941, 15941,  2261, 15941, 15941,
   15941, 15941, 15941,  2623, 15941, 15941, 16573, 17205, 15941, 15941,
   15941, 15941,  1010,  2786, 41097, 15941, 10885, -3759, -3759, 47807,
   -3759, -3759, -3759,  2255, 23990,  1677, -3759, -3759,   -75,  2733,
   -3759, -3759,  2265, 23990, -3759,  2262, -3759,  2619, -3759, -3759,
    2620,  2622,  2624, -3759, -3759, -3759, -3759, -3759,  2847,  2627,
   -3759, -3759,  2628, -3759, -3759, -3759, -3759,  2272, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759,  2384, -3759, -3759, -3759,  2295,
   -3759, 38657,  2295, -3759, -3759,  2295, -3759, -3759,  2295,    52,
    4608, -3759, -3759, 47807, -3759, 48417, -3759, -3759, 21527,  -133,
   -3759, -3759, 12781, -3759, -3759, -3759,  2652,   186,  2297, -3759,
   23990, -3759,  2004, -3759,   101,   101,  2544,  1342, 41097, -3759,
   -3759,   180,  2307,  2388,  2311, -3759,  2390, 23990, 23990, -3759,
   -3759, -3759, -3759,  2933,  1124, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2316,  2791,
    2317, 38657,   881, -3759, 47807, -3759,  1350, -3759, -3759, -3759,
    2323, -3759, 10885, -3759,  2326, -3759,  1507,  2715, -3759,  -133,
   10885, -3759,  2338,  1370, 47807, 47807, 47807, 23990, 47807, 23990,
   -3759,    -7,    -7, -3759, 35607, -3759, -3759, -3759, -3759,   -33,
   47807, 47807,   -33, 38657, -3759,  1353, 47807,   -33, -3759,  2717,
    2436, -3759, -3759, -3759,  2792, -3759, -3759,  2790,  2343, -3759,
    2715, -3759, -3759,  1353, -3759, -3759, 23990, -3759, -3759,  1353,
   -3759,  1353,  1353,   -33,   -33,  2400, -3759, -3759,  2353, -3759,
    2400,  2498, -3759,   685,   132,  2597, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759,   717, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759,   161, -3759, -3759, -3759,  1800,  2852,
   -3759, 41097,  1819,   724,    -2,  1819,  1822,  -133,   820, -3759,
     820, -3759,  4090,  2629,   205, 23990, -3759,  2364, 44147, 23990,
   -3759, -3759, -3759,  1331,  2366,  2370,  2004,  2838,  2842,  2844,
    2853,  2854,  2858,  2870,  2871,  2873,  2876,  2877,  2880,  2882,
    2901,  2902,  2905,  2906,  2910,  2424, -3759, -3759, -3759, -3759,
   23990, -3759, -3759, -3759, -3759,  2494, -3759, -3759, -3759, -3759,
    2202, -3759, -3759, -3759,   166,  2042,  2464,  2491,   154, 38657,
    2881, 47807, 47807,  1370, 47807, 47807, -3759, -3759,  1018,  2719,
    2721,  2726,  2461, -3759, -3759, -3759,  1031, 47807,  2887, 29507,
   -3759,   298,   571, -3759,  2849,  2465, -3759,  2469,  2472,  2474,
   10885,   281,   398,  1069,  1251,  1227,  1083,   332,   349, -3759,
    1294,   351,   386,   463,  1100,   467,   258, -3759,  2485,  2470,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2489, -3759,
   -3759, -3759,   536,   549,  1106,  1108,  2492,  2493, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2928, -3759,
    1319, -3759, -3759, -3759, -3759,  2495, -3759, -3759,  1137,   573,
     597,   308,  2501,  1382,   622,  1413,  1416,  2496, 25218, 47807,
    2849,  2497,  1139,  1197,  2849,  2502,   700,  1217,  1422,  1448,
    1467,  1240,  1248,   735,  1475,  2998,  1250,   802,   823,   834,
     848,  1254,  2506,  2512,   875,   319,  2849,  2514,   353,  2500,
    2516,  1277,  8989,  9621, 10253,  1056,   879, -3759,  2518, -3759,
    2245,  2520,  2521,   372,  1285, -3759, 10885, -3759, -3759,   755,
    1271,  2582,   203,  1076, -3759,  2679, 47807,  2090,   176, -3759,
   -3759, -3759, -3759, -3759, -3759,   754, -3759,  2527, -3759,  2530,
    1908,  2536, 10885,   211,  2536,  2296,  2399,  2399, 15941,  2893,
    2344, 11517,  1497, 11517,  1497,  2536,  2536,  2536, -3759, 15941,
    2538, 15941, 15941, -3759,  2786,  2004,  2540,  1017, 47807, -3759,
     -75, -3759, -3759, -3759, -3759,   106, 38657,   158, 23990, 41097,
    2535, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  4357,
   23990, -3759, 47807, -3759,  2621, -3759, -3759, -3759, 22141, 22141,
   -3759, 22141, -3759, -3759,   356,   357,  3017,  2570, -3759, -3759,
   -3759, 28895,  2004, -3759, 23990, -3759,  2944,   721, 23990,  2364,
   -3759,  2549, -3759, -3759, -3759, -3759, -3759,  2567,  2659, -3759,
    3170, -3759, 10885,  -133, -3759, 38657, 38657, 23990, 23990,   229,
   -3759,  2127, -3759, -3759, -3759,  3583, 17837,  2982,  2995, 22141,
   22141, 22141, -3759, -3759, -3759, -3759, -3759,  1188,  2004, -3759,
    2556, -3759, -3759, -3759, -3759, -3759, 44757,   173, -3759, -3759,
    -133,  2997, -3759,  2004,  2564, 47807, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  3026,
   -3759,  2742,   554, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
     -33, -3759, -3759, -3759, -3759, -3759,  2787,  2420,  1592,  2997,
     -33,  1353, 23990,   -33,   -33, -3759, -3759,  1390, -3759,  1144,
   -3759, -3759, -3759, -3759, 47807,  2992,  2727, -3759,  2579, -3759,
   -3759, 23990, -3759,  2580, -3759,  3018,  3164,  2420, -3759, -3759,
   -3759,   106,   106,  2889, -3759,  -133,  2710,  2729,  2731,  2741,
    2743,  2760, -3759, -3759,  -133,  -133, -3759, -3759,   106, -3759,
     897, -3759, -3759, -3759, -3759,  -133,  -133,  -133,  -133,  2699,
    -133,  -133,  1479, -3759, -3759,   106,   106, -3759,  1304, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759,   931, -3759,  2562,  3150,
    2843,   106,   106,  3150,   106,  2863,  2864,   106,   106,  2687,
    3109,   106,  3002,  2737,  2442,  3004,   106, -3759,  2738,  3122,
     106,   106,   106,   106,  3150,  2883,  3217,   106,   106, -3759,
     106,  2890,  2891,   159,  2892,  2894,   106,   182, 47807,   106,
     106,  2895,   106, -3759, -3759,  6648, -3759, -3759, -3759, -3759,
   -3759, -3759,  -123, 22758, -3759, -3759,   106,   399, -3759,  2846,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759,  2663, -3759, -3759, 10885,  2667,  2699,  -133,  -133,
    1233,  -133,  2699,  -133,  -133,  -133,  -133,  -133,  2699,  2699,
    -133,  1521,  -133,  2699,  4058, -3759, -3759, -3759, -3759,   248,
     106,   106,   106,   106, -3759,   932, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, 41097,  3009,  1318,   -70, -3759, -3759,
   41097, -3759, 47807, -3759,  1369, 47807,  2668,  -162,  5058,   152,
     152, -3759, 23990, 23990, 23990, 47807,  2704,  2570, 29507, -3759,
   -3759,   685, -3759,  2661, 13413, -3759,  2669, -3759, 10885, -3759,
   -3759, -3759,  1935, 10885, 10885,  3145,  2301, -3759, 39877, -3759,
   -3759, -3759, 10885, 10885, -3759, 10885, 10885, 10885, 10885, -3759,
   10885, 39877,  2301, 10885, -3759,  2672, -3759,  3062,  3064, -3759,
   -3759, -3759, -3759, 10885, -3759, 10885, 10885, -3759, 10885, 10885,
   10885, 10885, -3759, 10885, -3759, -3759, 15941, -3759,  2670,  2681,
   -3759, -3759, -3759,  2683, -3759, 10885, -3759, -3759, -3759, -3759,
   -3759, -3759, 10885, -3759, 10885, -3759, 10885, 10885, 10885, 10885,
   -3759, -3759, -3759, 14045, 10885, 10885,  2690, -3759, -3759, 10885,
   10885, 10885, -3759, 10885,  1435, 10885,  1613, 10885,  1625, 10885,
   -3759, 10885, -3759, -3759, -3759, -3759, 10885, -3759,  1486, -3759,
   -3759,  1990, -3759,   755,  2691, -3759, -3759,  1350, -3759, -3759,
    2678,  2688,  2697, 41097, 10885, -3759, -3759, -3759, -3759, -3759,
   -3759, 15941,   374,  2692, 15941, -3759,  2296,  2985,  2985,  2186,
   10885,   211,  2296, 10885,  2698,  2696, -3759, 10885, 47807, -3759,
   -3759, -3759, -3759, -3759, -3759, 41097, -3759, -3759, -3759, -3759,
     158, -3759,  2262, -3759,  2364, -3759, -3759,  1508, -3759, 38657,
    2708, -3759,  2712,  2784,  2785,  2799, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2420,  2127,
   -3759, -3759,  2730, -3759, -3759,  2450,  2812,  2747,  3087,  3274,
   -3759, -3759, 47807, 15941, -3759,  3316,  2739,  2740,  3204,  2744,
    2004, -3759,  2816, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,    46, -3759, -3759,  2746,  2746, 19681, -3759, -3759, -3759,
    3219,  1016,  1016,  1016, -3759, -3759, -3759, -3759,  3022, 38657,
    3186,  3201,  3206,   660, -3759,   389, -3759,   992,  3159,  2420,
   -3759,  3214, 41707, -3759, 30117, -3759,  2771,  3161,  2774,   106,
   34387,    67, 27059, 36217, -3759, -3759,  1233, -3759,    22, -3759,
   36827,  3245, 36827, 36827, -3759,  3060, -3759, -3759, -3759, -3759,
    2570,  1353, -3759, -3759, -3759,  2794, -3759, -3759,   781,  3169,
    3174, -3759,  3054,   851,  3054,   781,   781, 25218,   685,  2456,
   -3759,  2699,  3110, -3759, -3759, -3759, 40487, 37437, -3759, -3759,
   -3759, -3759,  3318, -3759,  3320,   221, -3759, -3759,  3192,    -2,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759,  1822,  3192,  3192,   820, -3759,
     147, -3759, -3759, -3759, -3759, -3759, 25832,    80, -3759,   242,
   -3759, 25832, -3759,  1331,  1331, -3759, 25832,    80,  1233,  2699,
   25832,  2699, 45367,    80,  -133,  -133,  2129,   106,  2699, -3759,
   -3759,  3187, 47807,  3193, 25832, 25832, -3759, 41097, -3759,   106,
    1329,  2699,  1233,  1233, 25832,    80, 25218,  2660,  3137, -3759,
    -133,    80, -3759, -3759, -3759, -3759, 23990,    80,    80,  2618,
   -3759, -3759, -3759,  2699,  3137, 45367, -3759, -3759,  6461, -3759,
   -3759, -3759, 19067, 47807,  1079,   179, -3759,  2806, 32557,    20,
     294,  2896,  1040,  2823,  2825, 45977,  2004,  2699, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,  -133,  2567,  3192,  3192,  2042, -3759,  3082,  3249,   106,
   -3759,  2028, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,  2916, -3759,   157,  3008,  2828, -3759, -3759,   118, -3759,
   -3759,  1228, 23990, 18453, -3759,  3070, -3759,  3101, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2824,   685,  3089,
    1131,  2570,  2839, -3759, 11517,  1307, -3759,  2004, 10885,  2004,
    1953, -3759,  2836,  2836,  2836, -3759,  2837, -3759, -3759,  2836,
    3226,  2836,  3230,  2848, -3759,  2855, -3759,  1611,  1825, -3759,
    1650,  1321,  2000,  1325,  2859,  2860,  1361, -3759, 10885, 10885,
    1359,  1365,   605,   884,   889,   405, -3759,  1381,  3234, -3759,
   -3759,  1386,  1418,  1451,  1484,   902,  1542,  1663, 11517,  1548,
     340,   409, -3759,  1566,   908,   936,  1584, 10885,  1593, 10885,
    1619, 10885,  1657,  1670,  1686, -3759,  2043,  1990, -3759, -3759,
    2862, -3759, -3759, -3759, -3759, -3759,  2851,  2004,  2866, -3759,
   -3759, 10885, -3759,   865, -3759, -3759, 15941,   436,  2867, -3759,
    2004, -3759, -3759,  2879,  1361, -3759, -3759, -3759, -3759, -3759,
    2874, -3759, 47807,  -187,  2869, 30727, 38657, 38657, 38657,  2845,
   10885, -3759, -3759,  3143, 23990, -3759,  3273, -3759, -3759, -3759,
   -3759, -3759,  2897,  2898, -3759, -3759, -3759,  2296,  3237,  3121,
   -3759, -3759,  2567, 47807, 38657, -3759,  2937, 25218, -3759,  2899,
   -3759,  2899,  -122,  2903,  1665, -3759, -3759, -3759,  2875,  2081,
   17837,  3328,  2265, 38657, 38657, 38657, -3759,  2570,  2570,   133,
    2946,  3266, -3759, -3759, -3759, -3759, 46587, -3759, -3759, -3759,
   -3759,  1082, 47807,  3259, 47807,  8357, -3759, -3759,  3459, 10885,
   38657,  1067,  1076,   106, -3759, -3759, -3759, -3759, -3759, -3759,
    2420, -3759, -3759, -3759, -3759, 36827, -3759, -3759, -3759,  2420,
   -3759,   -33,  1390,  -185,  1271, -3759,  1232, -3759, -3759, -3759,
    3280,   781,  3054,  3054,  3283,  3176,   742,  2909, -3759,   106,
   -3759, -3759, -3759,  2937, -3759, -3759, 10885, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,   931,
   -3759, -3759, -3759, -3759,  2908,  3286,  3287,  1331, -3759, 25832,
   -3759, -3759, 25832, 25832,    85, 45367, -3759, -3759, -3759, -3759,
   -3759, -3759,  2912, -3759, -3759,  2567, -3759, -3759, 37437,  -133,
   -3759, 25832,  2912, -3759, -3759,   136, -3759,  -133, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, 45367,  2913, -3759,   354,
   -3759, -3759, -3759, -3759, -3759,  1678, -3759, 45367, -3759, -3759,
   45367, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759,  2919,  2990,  1960, -3759,  2915,  2918, -3759, -3759,
   -3759, -3759, 47807, -3759, -3759, 23990, -3759, -3759, -3759,  5958,
   47807, -3759, -3759, -3759, -3759,  3151, -3759, 10885, 10885,  3191,
   47807,  3194, -3759,  3468, 47807,  3535, 45367, -3759,  2926, -3759,
    2927, -3759,  1683, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
    2932, 47807,  3192,  1318, -3759, -3759, -3759, -3759,  -133,  1228,
   -3759, -3759, -3759, -3759,  3199,  3203, 47807, -3759, -3759, -3759,
   -3759,  3073, -3759, 23990,  3520, -3759,  3102, -3759,  2940,   434,
    2603, -3759,  2942,  2945,  2947, 29507,  2570,  3306, -3759, -3759,
    2985, -3759,  2004, 10885,  1058, -3759, -3759,   201, -3759,  1149,
   -3759, -3759, -3759,  2948, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,  2490, -3759, -3759, -3759,  2301, -3759, -3759, -3759,  2950,
    2985,  2985, -3759, -3759,  3530,  3112, 10885, 10885, -3759, 10885,
   -3759,   193,  2952,  2977, -3759, -3759, -3759, -3759, 10885, -3759,
   -3759,  2985, -3759, 10885, -3759, -3759, 10885, -3759, 10885, 10885,
   -3759,  1688, -3759,  1711, -3759,  1729, -3759, -3759, -3759,  2323,
   -3759, -3759,   704, 47807, -3759, -3759,  1712, -3759, -3759, 10885,
   -3759, 41707, -3759, -3759,  3166, -3759, -3759,  3382, -3759, -3759,
   -3759,  -144,  -144,  -144, 14677,  2004,  3441, -3759, -3759, -3759,
    3273,  3329, -3759,    55, -3759, 47807,  2963,  1459, -3759,  1722,
   -3759, -3759,  2973, -3759,  2043,  2974, -3759,   106, 14677,  2746,
    3102, -3759, -3759,  -122, 25218, 30117, -3759, -3759, 38657,  2265,
    2265,  2265,  2420,  3401,  2812,  2812, -3759, 27672, -3759, -3759,
    3132, -3759, -3759, 31337, -3759,   -42, -3759, -3759, 15941,  1580,
   -3759,  2004, -3759, 40487, -3759,  2004,   106,  2983,  2988, -3759,
   -3759, 47197, 10885, -3759, -3759, -3759, -3759, -3759,  1350,  3007,
   -3759,   685, -3759,   781, -3759,  3362,  3374,   781, -3759, -3759,
   -3759, 25218,  2570, 14677, -3759,   784,  2043,  2004,  2996,   354,
   -3759,   524, 10885, 25832, -3759, -3759, -3759,  2999, -3759, -3759,
    3500,  3502, -3759, 25832,  2202, 47807, -3759,  3459, -3759, -3759,
   -3759, -3759,  5958, -3759, 25218, -3759, -3759, -3759, -3759, -3759,
   47807, -3759, 23990, -3759, 19067, -3759,  3005, -3759,  2836,  2836,
    2836, -3759, -3759, -3759,  2836, -3759,  2837,  3236, -3759,  2837,
    2837, -3759, -3759, -3759, -3759, -3759,   201,   339, -3759, -3759,
     201, -3759, -3759, -3759,    97,   926,  2837, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759,  2836,  2836,  2836, -3759, -3759,   201,
    2836, -3759,  2836, -3759,  3247, -3759,   218,   112,  2836,  2836,
    2836,  2948,  3003, -3759,  2004,  2985,  3556, -3759, -3759,  3160,
    -133,  3499, -3759,  1743, -3759,  3016, -3759, 45977, -3759,  2699,
    1822, -3759, -3759, -3759, -3759,  3156,   868, -3759,  3189,  3023,
    3027, -3759, -3759,  -133,  3024,  3031, -3759, -3759, -3759, -3759,
    3628, -3759, 47807, 47807, 47807,  2661, -3759, 38047, -3759,   370,
    2004,  3033,  3034,  3036,  3037,  3622,   280, -3759,  3633, 39877,
   -3759, -3759, -3759,  1750,  3312, -3759, -3759,  2836, -3759,  2837,
   -3759, -3759, -3759,  3610, -3759, -3759,  2836,  3429,   201, -3759,
   -3759,  3044, -3759,  3045,  3050, -3759,   132,  3056,  1755,  1030,
    1801,  3356,  3431, -3759,  3276, -3759,  1769,   767,  1774,  1780,
    1807,  1850, -3759, -3759, -3759,   208,  1271, -3759, -3759,  1829,
   -3759,  3412,  3322,  1057,  3090,  3090,  3090,  1580,  2004,  1833,
   -3759, -3759, -3759, -3759,  3453, -3759, -3759,  3068,  3170, 47807,
   -3759,  3121, -3759,  2323, 25218, 14677,  3069,  3067, -3759,   -31,
   -3759, -3759,  3065,  2265, -3759,  3653,  3491, -3759, -3759, 41097,
    3074, -3759, -3759,  3376, -3759,   135,  3288, -3759, -3759, -3759,
    1067,  3177,  3179,   106,  2004, -3759, -3759,  2579,  2183,  3124,
     781,   781,  2617,  3131, 10885, 10885,  3091, -3759,  3089, -3759,
   -3759,   882,  2323, 10885, -3759,  2567,  3121, -3759,  1873,  3092,
    3093, 47807,  3094,  3095, -3759,  2386,  1079, -3759, -3759, -3759,
   -3759,    80, -3759, -3759,  2912,    46,  3096, -3759, 47807,  3420,
   -3759, -3759, -3759, -3759,  -156, -3759,  3098,  -156,  -156, -3759,
    2203, -3759,  3133,   201, -3759, -3759,  3135, -3759, -3759, -3759,
    -156,  3105,   201, -3759, -3759, -3759, -3759,  -156, -3759, 41097,
    -133,  3654,  3716, -3759,  3158, -3759,  3608,  3484,  3720, -3759,
    2333, -3759,  3486,  3386,   106, -3759,   201, -3759, -3759,  3709,
   -3759,   201,  3709,  -156,  -156, 47807, -3759, -3759, -3759, -3759,
   -3759, -3759, 47807, -3759,   795, -3759, -3759, -3759,  1844,  -133,
   -3759, -3759, -3759,  3115,  3117, -3759, -3759, -3759,   294, -3759,
   47807,  5958, -3759, -3759, -3759,  6648, -3759,   817,  1855,   354,
    3120,  1867,  1884,  3575,  3293, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, 39877, -3759,  3709,  3394,  3123, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, 10885, -3759, -3759,
   -3759, 10885, -3759, -3759,  3428,  3584, -3759, -3759, -3759, -3759,
   -3759, -3759,   992,   992, -3759, -3759, -3759,  3740, -3759,  3220,
    3221, -3759, -3759,  3222, -3759, -3759,    99,  2118, -3759, -3759,
   -3759, -3759, 14677,  3508,  3232, -3759, -3759,  3138,  3180, -3759,
   -3759,   208, -3759, -3759, -3759, -3759, 10885, -3759,  3089,  2129,
   -3759, 27672, -3759, -3759, -3759, -3759, -3759,  3140,  3141,  8357,
     704, -3759,  3183, -3759, -3759, -3759,  3190,  2004,  2004, 47807,
    3306, -3759, -3759,  1331,  1331, -3759,   882,   208,   354, -3759,
    1896, -3759, 47807, 47807,  1933, 47807, 47807,  1016,  1016,  1016,
    1521,  1521, -3759, -3759, -3759,  1079, -3759,  3532, -3759, -3759,
    1936, -3759,    66,  3409, -3759, -3759, -3759, -3759,  -156, -3759,
     132, -3759, -3759, -3759, -3759, -3759,   132, -3759, -3759, -3759,
   -3759,  1541, -3759, -3759, -3759,  3425,  3197, -3759,  3152, -3759,
   -3759, -3759, 33167, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
    3270, -3759, 53907, -3759, -3759,  -135,  3178, -3759, -3759, -3759,
     150, 47807, 23990,  3191,  3333, -3759,  3459, -3759,   -31,  3070,
    3102, -3759,  1019, 47807, -3759,  3433,   189,  1555, -3759,  3618,
   -3759, -3759,  3162,  3163,   354,  1895, -3759, -3759, -3759, -3759,
    3656, -3759, -3759, -3759, -3759, -3759,   762,  3423,  2699,  2699,
    2699,   540,  2118, -3759, -3759,  3218, 23990, 15941,  3278, 47807,
     819,  3307, -3759,  1177,   354, 10885,  2420, 37437, -3759, -3759,
   -3759, -3759, -3759, -3759, 10885,  3168, 10885,  3171,  1939, -3759,
   -3759,  3611,  3611, -3759, -3759, -3759, -3759,  1952,  1974, -3759,
    1981,  1991, -3759, -3759, -3759,  3172, -3759, 47807, -3759, -3759,
   -3759,   307, -3759, -3759,  2009, -3759,  2019, -3759,  1541, -3759,
   -3759, -3759, -3759, -3759, -3759, 10885,  3647,  3200, 47807,   951,
   -3759, 55127, 55127, 47807, -3759, -3759, -3759, -3759,  5471, -3759,
   -3759,   914, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759,  3773, -3759,  3173, -3759, -3759,  3182,   244,
   -3759, -3759, -3759,  5958,  3616,  1040, -3759, -3759, -3759, -3759,
     434,  3184,  2081,  -133,   106, -3759,  1019, -3759, -3759, -3759,
     106,   354,  3185,  3424, -3759,   189, -3759, -3759, -3759,  1555,
   -3759, -3759, -3759, -3759, 10885, -3759, -3759,  3747, -3759, -3759,
   -3759, -3759, -3759, -3759,  1167, -3759, -3759, 25218, -3759, -3759,
    2567, -3759,  2041, -3759, -3759, -3759,  3271,   106,   106,  3678,
    3679,   106,   106,   106,   106,  3196,  3307, -3759,  3658, -3759,
   -3759, 10885, -3759, -3759,  2004,  3414, -3759,  3749,  1271,  2004,
   47807,  2004, 47807, -3759, 47807,   953, -3759, -3759,  3400, -3759,
    1019, -3759, -3759,  3121, -3759,   474,   474,   201,   132,   201,
   -3759,  3198,  2004, 10885, -3759, 10885,  3224, -3759, -3759,  3636,
   47807, -3759, -3759, -3759, -3759, 10885, -3759, 53907, 53907, -3759,
   -3759, -3759, -3759,  3798,   -31,  3767,  3465,  3775,  3331, -3759,
   -3759,  3468,  5958, -3759, -3759, -3759, -3759,  2699, -3759, 33777,
   -3759, -3759,  1263, -3759, -3759,   354, -3759, -3759, -3759,  3210,
   -3759,   106,  2129,  3207, -3759, -3759, 47807,  3213, -3759,  -133,
    -133,   106,   106,  3188,  3188,  2567, 41097,  3323, -3759, -3759,
     106,   354, 47807, -3759,   801,  3576, -3759,  2057,  2070, -3759,
    3801, -3759,  3802,  3238,  3241, -3759,  1019, -3759,   189,  1555,
    2072, -3759,  3840, -3759,   806,  3488,  3490, -3759, -3759, -3759,
    -106,  2004,  2004, -3759,   283, -3759, -3759,  3621,  3710, 10885,
    2004, 50857,  3239, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, 54517, 10885, -3759,   914,
    3773, -3759,  3495, -3759,  3501, -3759, -3759, -3759,  3735, 53907,
   -3759,  3728, -3759,   -31, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, 25218, 14677, -3759, -3759,  3278, -3759,  3246, -3759, -3759,
     -85, -3759, -3759,  -133,  -133, -3759, -3759, -3759, -3759, -3759,
    2084, -3759, 41097, -3759, -3759,  3828,  3829,  3724,  3832,   801,
   -3759,  -129, -3759, -3759, -3759, -3759, -3759, 45977, 45977, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759,  3303,  3751, -3759, -3759,
     250,  3279, 10885, 53907, -3759,  3729, -3759,  3660,  1958,  3602,
    3254, -3759,  3252,  1812,  3763, 55127, 55127, -3759, -3759, -3759,
   -3759,  3742, -3759, -3759, -3759, -3759, -3759,  3437, -3759, -3759,
    2096, -3759, 15309, -3759, -3759, -3759, -3759, -3759, 41097, -3759,
    3323, -3759,  3267,   132,   132,  3847,   132, -3759,  3849,  3852,
    -129, -3759,  3272,  2110,   474,   474,  -133,  3650, -3759,   250,
   -3759, -3759,   285, -3759,  2004, 51467,  3867, 47807, -3759, -3759,
   -3759, -3759, 10885, -3759, 42317, 52077,  3289, -3759, -3759, -3759,
    3442, -3759,  3331,  3682,  3749, -3759,  3246, -3759,  3291, -3759,
    2296,  3307, -3759, -3759,  3295, -3759, -3759,   132, -3759,   132,
     132, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, 10885,
   -3759,  3777,  3380, -3759,  3298, -3759, 53907,  2039, 53907, -3759,
   -3759,  3722,  3304,  1563, -3759,  3299, -3759, -3759, 53907,  3890,
    3576, -3759, 15309,  3313, -3759, 10885,  3317,  3319, -3759, -3759,
   -3759, -3759,  2004,  3895, 53907, 47807, 49027,  3511, 52687,  3761,
   47807,  5958,  3764,  3770, -3759, 53907, -3759,   132,  3748, -3759,
   -3759,  2004, -3759, -3759,  3436, -3759, 49637, -3759,  2593, -3759,
    3369, -3759, -3759,  3853,  2537, -3759, -3759, -3759,  3623,  3354,
   -3759, -3759, 53907, 53907, -3759, -3759, -3759, 31947, 10885, -3759,
   -3759, -3759, -3759, -3759,   660,    33, 20295,  3510, 50247, 53297,
   -3759, -3759, -3759, 28285, -3759, -3759, -3759,  3796, -3759,  2004,
   -3759, -3759, -3759, -3759, -3759, 41097,  2134, -3759, -3759, 25218,
   -3759, 31947, -3759, -3759, -3759, -3759, 23374,  3358, -3759,   106,
   -3759, -3759, 25218, -3759, -3759, 14677, -3759, -3759
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -3759, -3759, -3759, -3759, -3759,    91, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759,  1728, -3759, -3759, -3759, -3759, -3759,
    1937, -3759,   673, -1779, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759,   677,  1558,  3346, -3759,   414, -3759,    78, -3759,
   -3759, -3759, -2857,   -47,  -237, -3759, -3759,   486,    17,  3010,
    -235, -2986, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,   426,   423, -3759, -3759,   237, -3759, -3759, -2053, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759,  -422,  -374,  1804,
   -3759, -3759, -3759,  3975, -3759,  3446, -3759,  1268,  2219, -3759,
   -3759, -3759,  -634,   271, -3759,   272, -3759,   276, -3759,   278,
   -3759,   279,   282,   284,   287, -3759,   288, -3759, -3759,  -352,
   -3759, -3759, -3759, -3759,   289, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759,  -227, -3759, -3759,   -67, -3759, -3759,  -220,   291,
   -3759,  -172,   293, -3759,   295, -3759,   -84, -3759,   -81, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,  3030, -3759, -3759, -3759, -2236, -3759, -3759, -2364,  2601,
   -3759, -1585, -3759, -3759, -1701, -3759, -3759, -1730,   891, -3759,
   -3759,  -101,  -339, -3759, -1329, -1885, -1865, -3759, -3759, -3759,
   -1955, -1946,  -781,  2332, -1195, -2124, -3759, -3759, -3759, -3759,
     146, -3759, -3759, -2530,  2062,  2605, -3759,  2595, -3759, -3759,
    1163, -3759, -3759,  1341,   653,  1345, -3759,   957,  2769, -1248,
   -3759, -3759, -3759, -3759, -3759, -3759,     9,   262,   -88, -3759,
   -3328,   659, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -2454, -3759, -3759, -3759,  -260, -3759, -3759,  -167, -3759, -3759,
    -217, -3759,   111, -2269, -3759, -3759, -3759, -3759,  2571, -1294,
   -3759,  3582, -3759,  -549,   504,  2097, -2175, -1395, -3759,  -925,
    -887, -2428, -3759, -3759, -3759, -3270,  1112,  1523, -3759,   860,
    2094, -1890, -3759, -3759, -3759, -3759, -3759,  1594, -3759, -3759,
     885, -3759,   878, -3759, -3759, -3759, -3759,  -168, -3759,   232,
   -2695, -3759, -3759, -3759, -1962,  1072,   852, -3759, -3759, -3759,
   -1031, -1993, -1112, -3759,   376, -2467, -2406,   814, -3759, -3759,
     570, -3551, -3759, -3759,  -569, -2059, -2347,    49, -3759, -3759,
     583, -3052,   952, -3759, -3759, -3759, -3041, -1821, -3759,   116,
   -3759, -3759, -3759, -3759, -3758, -3759, -3759, -1446, -1950, -3759,
   -3759,  4115,  4116, -1034, -2630, -3649,    21,    19, -3759, -3759,
   -3759,  2594, -1174,   198,   184,   190,  2046, -1770,   344, -2315,
   -3759,   392, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2128,  -601,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -2365,   916, -3759,
   -3759,  1635, -3759, -3759, -3759, -1807,  3195, -3759, -3759, -3759,
   -3759,  3509, -2146, -3220, -3759, -3759, -3759, -3759, -3759, -3759,
    1457, -3759, -3759,  2253,  2714, -3759, -3759, -3759, -3759, -3759,
   -3759,   640,  1830, -3759, -3759, -3759, -3759, -3759, -3759,   930,
    2626, -3759, -3759, -3759,   -15, -3759, -3759, -3759, -3759,  2348,
   -3759, -3759, -3759, -3759,  2682, -3759, -3759, -3759, -3759, -3759,
   -3759,  1434, -3759,  1862, -3759, -1428, -3759, -3759,  1044,  -981,
    1817,  -593,  1949,   393, -3759,  3552, -3759, -3759, -3759, -1643,
   -1400, -3759,  3258,  -895, -2488,  2345,  -550, -1801,  1073,  1524,
    -676,  3522, -3759, -1143, -1136, -3759, -3759,  -644, -3759, -3759,
   -3759, -3759, -3759,  2045,  2054,  -647, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759,  1480, -3759, -3759,
   -3759, -3759, -1715, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
    1504, -3759, -2023, -3759, -3759,  -471, -3759,  3048, -3759, -3759,
   -3759, -2254, -1899,  1779,   990, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -2331, -3759, -3759, -3759, -3759, -3759,
    1973, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -1629, -3759,
   -1919,   335, -3759,   482, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,   -23,   872,   -16, -2155, -1090,  1608, -3759, -3759, -1263,
    3097, -2001, -3759, -3759, -3759,  1955, -3759, -3759, -3759, -3759,
   -3759,   960, -2537,  2752, -3759, -3759, -3078,  -902, -2237,  -882,
   -3759, -1342,  1400,   503, -3759, -1749, -1778,  -782, -2466, -1092,
   -3759,  1703, -3759, -3759, -3759, -3759,  -177, -3759, -3759, -3759,
     527,  1861, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759,  -542,  -726, -3759,  2115,  2331, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759,  2914,  2885,  1926, -3759,
   -3759, -2572, -3759, -3759,  1892, -3759,   780, -1977, -1817,  1081,
   -3759, -3759,  1084, -3140, -3759, -3759, -3759, -3759, -3759, -3759,
    1022, -3759,    53,  3637, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759,  2684, -1054,  3558, -3759, -3759, -3759, -3759, -3759, -3759,
    2352, -3759, -3759, -3759, -3759, -3759, -3759,  2856,  3657,  -574,
   -1289, -3759,  -738,  2829,  2355,  -829, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,  2473,
     995, -3759, -3759, -3759, -3759,  2907, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759,  1117,   -62, -3759,    45,
    -105, -3759,   -24, -3759, -3759, -3759, -3759, -3759,  -198, -3759,
   -3759,  -202,  -668,  -974, -1346,   710, -1771, -2004,  1110,  2900,
   -3284,  -687, -1153, -1167, -1797,    65, -3759, -3759,  2821,    89,
    1510,  -373,    -6, -2702,  -109,  -589, -3759, -1828, -3759, -3759,
   -3759, -3759,  2425, -3759, -3759, -3759, -3759,  1463, -3759, -3759,
   -3759,  1077, -3759,   797,   572, -3759, -3759,   134, -3759,  2471,
   -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759, -3759,  2911,  3692,  3375, -3759,  2976, -3759,
   -3759, -3759, -3759, -3759,   448, -3759,   777, -2217, -1622, -3759,
   -3759,  2745,   701, -3759,  1556,  -322,  -618, -3759, -3759,   445,
   -3759, -3759,   310,  3700,  3384, -3759, -3759, -3759, -3759, -3759,
   -2701,  -885, -3759, -3316, -2758, -1672, -3759, -3759, -2119, -2937,
   -3759, -3759, -1015, -3759, -3759, -3759, -3759, -1902, -3759, -3759,
   -3759,    75,  3758,  3759, -3759, -3759,  -179, -3759,   478, -3759,
   -3759, -3759, -3759, -3759, -3759, -3759,  3625, -3759, -3759, -3759,
   -3759,  3627, -3759, -3759, -3759, -3759, -3759,  3629, -3759, -3759,
   -3759, -3759, -3759,  1498, -3759, -3759, -3759, -3759, -3759, -3759,
   -3759, -3759, -3759
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -2573
static const yytype_int16 yytable[] =
{
     493,  1036,   953,   865,  1449,   536,   981,   949,  1679,  1655,
    1589,  1358,  1451,   535,   552,   620,   541,  1101,  2216,  2304,
    1550,   560,  1678,   491,   994,  1079,   555,  2352,  2353,  1238,
    1109,  1632,  1128,   567,  1540,  1541,   570,  2032,  1863,  2518,
     567,  1386,  1862,  1744,  1787,  2336,  1414,  2547,   589,  2896,
     793,  2721,  2952,  2029,  1700,  3009,  3190,  2753,  3146,  2625,
    2841,  1708,  3017,  3479,  2825,  1456,  1386,  1796,  2448,  1710,
    1711,  2443,  2634,  1714,  1715,  1716,  1717,  2005,  1719,  1720,
    1722,  1724,  1725,  1726,  1727,  1728,  1159,   539,  1172,  1163,
     609,  2444,  1380,   137,  2406,  2407,  2599,  1597,  2682,  1025,
    1028,  2335,  3307,  1457,  1050,  1058,  1870,  2892,  2384,  2635,
    1066,  2418,  2774,   612,  2708,   493,  3815,   493,   619,   625,
    1415,  2567,  2762,  3675,  1880,  1180,  1181,  1182,  2436,  2437,
    2568,  3484,  1883,  1884,  2816,  1932,  2870,  1223,   614,  1222,
     616,   643,  2826,   500,  2458,  2459,  3558,  2461,  1291,  3032,
    2464,  2465,  2456,  1329,  2468,  3406,  2460,  3526,  3710,  2477,
    1910,   608,   551,  2480,  2481,  2482,  2483,  2475,   969,   559,
    2487,  2488,  1945,  2490,  1791,  3499,  2986,  2484,  2493,  2499,
    3141,  1166,  2503,  2504,  2348,  2506,  2801,  2257,  3089,  1512,
    2431,  2564,  1189,  1190,  1283,  1286,  2067,  2984,  2588,  3708,
    2420,  2077,  2601,  1508,  2860,  1291,   634,  3027,  3028,  2257,
    1802,  2565,  1416,  3034,  1391,  3036,  2516,  1300,  3683,  1189,
    1190,  2316,  3355,  1241,   847,  3519,  3524,  4253,  2252,  3525,
    3220,  1928,   914,   915,  1369,  3356,  3391, -2520,  1432,  3355,
    3217,  1411,  2864,  2551,  2552,  2553,  2554,  1768,  3535,  3357,
    2991,   857,  3356,  1029,  3294,  3557, -2452,  2790,  4116,  3868,
     914,   915,   987,  1189,  1190,  1989,  3357,  2252,   635,  1934,
    1046,  3933,  1852,  2400,  1189,  1190,  3724,   914,   915,  1741,
    3154,  3337,  1224,   664,  4218,  1323, -1479,  2581,  2528,  1453,
    1292,  1439,   547,  2538,  1453,  3673,  4045,  1304,  3413,  2544,
    2545,  3611,   869,  4431,  2549,  2864,  1513,  4046,  1039,  2678,
    1514,  1992,  2856,  2857,  1189,  1190,  1460,  2957,  -864,  2571,
    2494,  1515,  2500,  -529,  1189,  1190,  3734,   136,  1853,  1553,
    2073,   598,  4276,   658,  2020,  1189,  1190,  3623, -1943,   914,
     915, -2520,   665,  3804,  2322,   970,   971,  1292,  1189,  1190,
    2844,   569,  1741,   544,   132,  2992,  1189,  1190,  1167,  1168,
    3355,  4107,  2589,  2439,  2556,  1189,  1190,  1189,  1190,  1189,
    1190,  2955,  4049,  3356,  3235,  3455,  1453,  2234,  4268,  2810,
    1928,   580,  2785,  2789,  2791,  3580,  3188,  3357,  1189,  1190,
    1189,  1190,  3834,  1396,  3581,  1423,  3456,   648,   914,  3520,
    2345,  3832,  1189,  1190,  2316,  -530,   136,   650,   548,  4269,
     496,   262,  3011,   264,  1189,  1190,   501,  2116,  3107,  3735,
    2956,  1189,  1190,  1318,  1596,  1189,  1190,  3457,   810,  2977,
    2978,  2865,  2113,   850,  4223,   133,  4223,  3854,  1128,  4015,
     138,  1509,  3934,  1529,  3189,   636,  2768,  1516,  2021,   581,
     545,  3869,  1189,  1190,  1740,  1946,  1769,  4209,  1554,  2317,
    1903,  3736,  1621,  2958,  2845,  1622,  2324,  2325,  1235,  2572,
     666, -1479,  3929,  1477,   639,  2824,  1384,  1424,  1065,  1189,
    1190,   988,  3743,  1189,  1190,  2519,  1529,  3236,  1440,  4432,
    3194,  3747,  4219,   599,  1305,  3338,  1530,  1531,  1532,  2501,
     619,  4162,   625,  1854,  2873,  3864,  3140,  2508,   989,  3155,
    2360,  2184,   944, -2383, -2384,  3763,  4324,  4325,  4047,   806,
    3765,  3794,  3824,   625,  1742,  4111,   568,  3582,  2474,  1456,
    3073,   858,   845,  3392,  1412,  2767,   619,  3294,   855,  1301,
    1356,  3227,  2253,  4249,  1517,  1744,  3149,  3150,  3151,  3870,
    1030,   873,  1189,  1190,  3216,  2443,  1705,  3218,  3219,  3221,
    1865,  1713,  2361,  1868,  1908,  1189,  1190,  1457,  1872,   870,
    1370,  3440,  1329,   848,  1191,  2444,  3229,  1192,  1734,   965,
    1419,  2253,  2236,  2258,  1225,  1770,  3490,  1189,  1190,  1189,
    1190,  -433,  2380,  2239,  1885,  1886,  2242,  1742,   984,  1456,
    3019,  1932,  1329, -1479,  2945,  2258,  2567,   619,   849,   998,
    2005,  2590,  1284,  1189,  1190,  2568,  1564,  1565,  1191,  3323,
     609,  1192,  2802,  3210, -2383, -2384,   493,  2442,  2318,  1191,
    3855,   609,  1192,  1023,   856,   609,   609,  1457,  1189,  1190,
    1037,   998,  2317,  1620,  2866,   619,  3433,  2713,  3645,  1010,
    2889,  1633,  2834,  1635,  1392,  1067,  1068,  1069,  1510,  2874,
    3337,  1074,  2897,  2878,  1047,  1648,  1649,  1650,   814,  1191,
    4065,   972,  1192,  1654,   894,   966,  2564,  2894,  2895,  1191,
    1287,  1882,  1192,  1933,  1169,  4110,   863,  2905,  3527,  2854,
    1191,  1008,  1764,  1192,   876,  2993,  2565,  2233,  3684,  3016,
    1237,  1747,  1020,  1191, -2452,  1589,  1192,  4091,  2775,  2495,
    2877,  1191,  2879,  1129,  1192,  2516,  1189,  1190,  3482,  2890,
    1191,   967,  1191,  1192,  1191,  1192,  3955,  1192,  4151,  1792,
    1803,  1064,  2902, -2452,  3928,  1934,  2067,  3335,  2911,  2913,
    3024,  2987,  2982,  1191,  2072,  1191,  1192,  2563,  1192,  3230,
    2078,  1189,  1190,  3843,  2929,  2913,  3993,  1191,  2815,  2079,
    1192,  1510,  1818, -1479,  1011,  1910,  3152,  3153,  1789,  1191,
    3358,  1186,  1192,  1188,  2976,  3090,  1191,  2859,  2974,  1192,
    1191,  3510,  3511,  1192,  2055,  1809,  2516,  3358,  1510,  3032,
    1193,   549,  3032,  3032,  3943,  -864, -1479,  1231,   493,  1233,
    -529,   998,   493,   619,  1869,   493,   619,  1191,  2362,  3032,
    1192,  2318,  3555,  1383,  2867,  1048,  3182,  1193,  1189,  1190,
    4393,  1232,  4277,  3536,  1845,  1236,  3649,  4112,  1240,  3556,
    3559,  3561,  3562,  1397,  1191,  3341,  2219,  1192,  1191,  1189,
    1190,  1192,  2131,  1296,  3512,  1945,  3024,  4244,  3513,  3612,
    1189,  1190,  3203,  2858,  2979,  1892,   609, -2572,  3322,  1510,
    2520,  1193,  3469,  4060,  1189,  1190,  3473,  2726,   619,   609,
    2073,  2753,  1193,   609,  3338,  3504,  1685,  1686,  3532,  3533,
    3534,  2570,  -530,  2114,  4016,  4123,  3537,  4281,  2132,  1912,
    1623,  1189,  1190,  1624,  3563,  1189,  1190,  3963,  3489,  3101,
    1189,  1190,  3032,  3195,  3196,  1189,  1190,  1191,  3358,   557,
    1192,  3485,  1193,  1420,  2372,  3444,   619,  3215,  1189,  1190,
    1191,  4113,  1193,  1192,  1189,  1190,  3926,  1307,  2104,  3521,
    3291,  3443,  2226,  1193,  4214,  3126,  1224,  1685,  2150,  3468,
    1326,  3700,  1191,  3472,  1191,  1192,  1193,  1192,  4114,  2185,
    1269,  2157,  1189,  1190,  1193,  4195,  1945,  1320,   609, -2383,
   -2384,  3618,  2122,  1193,  3131,  1193,  4196,  1193,  1191,  3074,
    3621,  1192, -1439,   553,  2443,  2376,  4117,  3054,  4119,  2123,
    1452,  2126,  2188,  2189,  2085,  1384,  1193,  4170,  1193,  2336,
   -2383, -2384,  2151,  1191,  2444,  1386,  1192,   651,   574,  3605,
    1193,  2205,  2206,  2690,  2691,  2405,  2297,  2871,  2871,   609,
   -1439,  3650,  1193,  4193,  2060,  3346,  2127,  1893,   812,  1193,
    2648,  1894,  3381,  1193,  1863,  1386,  1863,  1863,  2567,  1001,
    2806,  2807,  4246,  3187,  3058,  3059,  1421,  2568,  3075,  3076,
    3365,  2374,  1729,  2448,   874,  2335,  1189,  1190, -1786,  2603,
    1193,  2379,   877,  1928,  2382,  2383, -1764,   118, -1787,  2741,
     609,  1422,  4156,  3975,  1546,  3098,  3099,  1553,  -433,  3465,
    3701,  1191,  1189,  1190,  1192,   582,  1819,  1193,  1695,  3378,
    1002,  1193,  2393,  3976,  2241,  1189,  1190,  2942,  2689,  1906,
    1932, -1764,  2811,  2128,  3111,  3112,  3113,  2130,  2564,  1189,
    1190,  3933,  2821,  3580,  3199,  1129,  1191,  3226,  3702,  1192,
    2227,  2442,  3581,  2005,  2822,  1733,  1189,  1190,  2565,  1129,
     729,  3649,  1189,  1190,  1189,  1190,    43,  2475,  1946,  2337,
    1928,  1537,  1052,  1060,  1456,  1544,  2831,   729,  2298,  3693,
    3694,  3836,  2216,  4028,   583,  1373,  1924,  2694,  2695,  1933,
    1193,  1892,  3486,  1189,  1190,  1189,  1190,  2256,  4100,  1679,
    3435,  3964,  4215,  1193,  1928,  1928,  2137,  2737,  1003,  1680,
    1688,  4197,  1457,  1191,  1741,   120,  1192,   602,  2961,  2138,
    1553,   619,  2770,  3351,  2373,  1193,  2243,  1193,   729,  4032,
    4033,  1553,  2290,  2962,  1191,   601,  1577,  1192,  4037,  3460,
    2105,  3478,  1374,  2148,  4101,  1191,  2260,   878,  1192,  1801,
   -1786,  1193,   627,  1189,  1190,  2688,  2312,  2313,   619,  1191,
   -1787,  2212,  1192,  1737,  1934,  2698,  2067,  2149,   609,  1375,
    1679,  4055,  2563,  1189,  1190,  1226,  1193,   609,  1225,  1946,
    4096,   262,  2303,   264,  2829,  3582,  1191,  1892,  2199,  1192,
    1191,  1741,  2153,  1192,  1730,  1191,  1189,  1190,  1192,  3930,
    1191,  3774,  2943,  1192,  1189,  1190,  1189,  1190,  2363,  2771,
    1189,  1190,  3934,  1191,  3351,   619,  1192,  1731,  2220,  1191,
    2061,  3653,  1192,  2322,  2072,  1820,  1741,  1773,    57,  1776,
    1925,   604,   609,  1189,  1190,  2569,  3882,  3120,  4029,  1739,
    3615,  1189,  1190,  2823,   609,  3522,  3650,  1191,  3365,  1640,
    1192,  2228,   619,  1893,  1193,  4456,  4156,  1894,   753,  1679,
    1644,   609,   609,  1189,  1190,  4102,  3200,  2229,  3791,  1945,
    2165,  2299,  1689,  2909,   944,   753,  2389,  1189,  1190,  4198,
    3352,  1189,  1190,  1945,  1107,   619,  3134,  1553,  1822,  1193,
    2221,   628,  1914,  4038,  2997,  2062,  1830,   729,  2531,   497,
    2073,  1107,  1823,   498,   585,  2172,  2570, -1439,   493,   493,
     493,   609,   493,   609,  1004,  1189,  1190,  2576,  1864,   610,
    2345,  1189,  1190,  2213,  1866,   493,   753,   619,  1780,  2151,
     493,  1846,  1847,  1848,   615,  1850,  3637,  1189,  1190,  2577,
    2060,  1191,  1189,  1190,  1192,  1031,  3651,  1108,  1867,  1893,
     609,   944,  1107,  1871,  1770,  3353,  1193,   613,  2532,  1742,
     652,  2871,   120,  3775,  1158,   881,  2516,  1191,  3177,  2346,
    1192,  3352,  2176,  3206,  1189,  1190,  1732,  1193,  1376,  1005,
    1191,  1006,  1849,  1192,  1851,  3790,   944,  2516,  1193,  4067,
     851,  1189,  1190,  2177,  1191,   619,  3178,  1192,  1842,  1863,
    1589,   586,  1193, -1764,  2178,  3703,  2390,  1189,  1190,   609,
    2998,  1191,  2025,   609,  1192,  1162,  1666,  1191,  2179,  1191,
    1192,  1881,  1192,  2391,  1032,   262,  3689,   264,  2474,  1193,
    3996,  1824,  1476,  1193,  2559,  2392,  1742,  -198,  1193,  2063,
    1189,  1190,   626,  1193,   609,  2183,  3363,   632,  1191,  2201,
    1191,  1192,  2898,  1192,  3056,  2533,  1193,  3528,  4039,  3057,
    3529,  3931,  1193,   619,  4068,   493,   493,  2419,  2087,   493,
    2442,  1742,  3068,  4298,  4298,   852,   882,  1928,  3078, -2520,
    2022,  1074,  1536,  2103,  2027,  1387,  3018,  2222,  2083,  2084,
    1193,  1928,  1799,  3097,  3800,   753,  1944,   639,  1189,  1190,
    1906,  2030,  2555,  3652,  1189,  1190,  3079,  1377,  1191,   643,
    2974,  1192,  2393,  3601,  3602,  1426,  3653,  3762,  2089,  2089,
    1679,  1107,  1189,  1190,  2799,  2031,  2899,  2693,  1191,  1378,
    2534,  1192,   640,  4166,  3137,   645,  1800,  1388,   647,  3995,
    1189,  1190,  2090,  2090,  1398,   853,  3179,   659,   883,  1189,
    1190,  1191,  1946,  1313,  1192, -1680,  1314,  4185,  4186,  1191,
    3354,  1191,  1192,   509,  1192,  1191,  1946,  2667,  1192,  1189,
    1190,  1379,  1129,  2158,  1399,  1189,  1190,  3933,  1933,  1206,
    2261,  1189,  1190, -2520,  1193,  2247,   700,  2999,  1191,  1427,
    1589,  1192,  4372,  2248,  2563,  2630,  1191,   661,  1741,  1192,
    3631, -1680,  2636,  1109,  1159,  1163,  2061,  2098,  3654,  3427,
    1193,  4373,  1741,  1189,  1190,  2642,  2876,   662,  1191,  1490,
    1491,  1192,  2900,  1193,  2394,  2200,  1189,  1190,   663,  1400,
    2225,  2726,  1191,   802,  1401,  1192,  1191,  1193,  2117,  1192,
    2903,  2904,  1189,  1190,  1189,  1190,   705,  3709,  2657,  1832,
    2247,  3354,  2121,  3428,  1193, -1680,  3862,  3863,  3163,   807,
    1193,  3714,  1193,  4251,  3723,   866,  4255,  1189,  1190,  2129,
    1191,   860,  2249,  1192,  2216,  2139,  1191,  2140,  3764,  1192,
     619,  3766,   609,   619,  3000,  1189,  1190,  2395,  1034,  1035,
    1241,  1193,  1191,  1193,   609,  1192,  2266,  1191,  1315,   868,
    1192, -1680,  2272,  2272,  4261,  2272,  2147,  2602,  2161,   578,
    3723,  1189,  1190,   579,  2072,   619,  2704,   262,   609,   264,
    2569,  1833,   609,  3989,  3990,  1189,  1190,  1047,  2570,  1191,
    1189,  1190,  1192,  1589,  3801,  2535,  1189,  1190,   846,   619,
     619,   609,   609,   718,   886,  2669,  1191,  3991,  3934,  1192,
    1129,  1193,   497,  2272,  2272,  2272,   498,  2671,   944,  1503,
    1504,  1533,  1191,  1189,  1190,  1192,  2162,  1209,  1189,  1190,
    2358,  1193,   944,  2271,  2271,  2118,  2271,   888,  1402,  2369,
    1581,  1189,  1190,   564,  3041,  4097,  2166,  4098,  1534,  2295,
     564,   961,  4351,  1307,  1193,  1191,  2120,  1226,  1192,   914,
     915,   878,  1193,   558,  1193,  3192,  1189,  1190,  1193,  2170,
    1834,  1911,  1326,  2315,  1358,  1533,   609,  2171,   734,  2175,
    2119,  1226,   982,  2180,  2271,  2271,  2271,  1011,  2388,  1189,
    1190,  1193,  2311,  1469,  1470,   609,   983,  2888,  3183,  1193,
    1582,  1915,  1535,  1742,  2931,   849,  2192,  3185,   991,  1403,
    1011,  1189,  1190,  1191,  2207,  1916,  1192,  1742,  1386,  1191,
    1021,  1193,  1192,  2124,  2125,  2231,  3466,  1386,  1583,  2365,
    3349,  1041,  1527,  1935,  2438,  1193,  3021,  1191,  1048,  1193,
    1192,  1000,  3857,  3858,  3916,  3860,  3861,  2381,  2144,  1226,
    3044,  1189,  1190,  1040,  3046,  1191,  4293,  1045,  1192,   118,
    3383,  3384,  1076,  4059,  1191,  2557,  2399,  1192,  1077,  1189,
    1190,  2573,  1404,  1193,  1189,  1190,  1078,  1679,  1835,  1193,
   -2572,  3397,  3186,  1765,  1191,  4146,  1766,  1192,  3052,  1767,
    1191,  1226,  2502,  1192,  3053,  1193,  1191,  1584,  1229,  1192,
    1193,  1863,   897,  1080,  2409,  3604,  1081,  2517,  1082,  2626,
    3060,  2152,  1226,  2416,  2417,  3064,  1189,  1190,  1230,  3045,
    1189,  1190,  2626,  1085,  2421,  2422,  2423,  2424,  1191,  2432,
    2433,  1192,  1193,  1086,  1679,  1087,   959,   960,  1936,   963,
    2445,  1191,  2154,  1226,  1192,  2155,  1638,  3065,  2829,  1193,
    1206,  2167,  1226,  1945,  1088,  1189,  1190,  1191,  1701,  1191,
    1192,  1089,  1192,  3916,  3916,  1193,  1090,  1679,   619,  3960,
    3961,  3962,  1585,  2337,   619,  1917,  2574,  2168,  1226,   493,
    3066,  2909,  1191,   761,  1405,  1192,   609,   609,   609,  2597,
     976,   977,  2600,   978,  4172,   979,  2169,  1226,  1193,  1091,
    1191,  1092,  2579,  1192,  2173,  1226,  1189,  1190,  2434,  2435,
    2060,  1093,   619,  3067,  2686,  2675,  1226,  4057,  1406,  1094,
    1218,  1219,  1220,  1221,  2060,   619,  1191,  2529,  2530,  1192,
    2537,   898,  2539,  2540,  2541,  2542,  2543,  2711,  2712,  2546,
    1191,  2548,   972,  1192,  1095,  1191,  2707,  1918,  1192,  2471,
    1096,  1191,  2243,  1097,  1192,  3133,  1193,  2593,  2594,  2595,
    4079,  4080,  1193,  1098,  4083,  4084,  4085,  4086,  4073,  1099,
    4285,  3069,  1919,  1102,  1241,  1241,  1241,  3072,  1191,  1104,
    1193,  1192,  1105,  1191,  3492,  3493,  1192, -1764,   914,   915,
    2030,   944,  4074,  1106,  4367,  3077,  1191,  1273,  1193,  1192,
    1937,  3176,  2569,  2696,  2559,   899,  1110,  1193,  1111,  3916,
    3916,  1938,  1245,  3080,  2031,  3566,  1112,   619,  1939,  1113,
    3096,  1191,  3082,  1114,  1192,  3514,  1115,  1193,  3517,  3518,
    1034,  1035,  1116,  1193,  1920,  1117,  1702,  1118,  1209,  1193,
    3040,  2125,  2705,  1119,  1191,  3530,  1122,  1192,  3084,   619,
    1123,  2626,  1124,  2793,  2798,  1130,  1140,  3851,  3852,  1131,
    1512,  1928,  1132,   619,  4183,  4184,  1191,  1679,  1133,  1192,
    1134,  1193,  1274,  4192,  3222,  1928,  1157,  1586,  1275,  3043,
    1226,  3137,  1135,  4366,  1193,  4368,  3086,  2389,  1136,  1173,
    1174,  3018,  3070,  1226,  3143,  3144,  2735,  2840,  2626,  3087,
    1193,  1137,  1193,  3916,  1227,  3233,  1191,  4187,  4164,  1192,
    1940,  4386,  3318,  3319,  1270,  3088,  3239,  3402,  3916,  3241,
    2758,  3817,  1276,  1921,  1191,  1193,  2216,  1192,  1206,  1191,
    1138,  3916,  1192,   619,  1141,  2612,  1946,  1142,  3619,  1277,
    3403,  3408,  1226,  1193,  1587,  1143,  2779,  1144,  2781,  4418,
    4419,  3430,  3431,  1145,   619,  1146,   619,   619,  3404,  3538,
    1147,  2613,  2473,  1148,  1864,  3315,  1864,  1864,  2707,  1193,
    1234,  1191,  3571,  3572,  1192,  1191,  2061,  1513,  1192,  3608,
    3616,  1514,  1741,  1193,  3630,  1211,  1212,  1149,  1193,  1150,
    2061,  1680,  1515,  1589,  1193,  3916,  1741,  1335,  3636,  1151,
     619,   619,  1941,  3638,  3539,  3741,  3742,  3916,  3916,  3639,
    1191,  1152,  3628,  1192,  1153,  3540,  2614,  2390,  3745,  2615,
    1154,  1193,   673,  3818,  3819,  3748,  1193,  2616,  3820,  3821,
    3632,  1226,  2863,  1155,  2391,  1272,  3640,  1703,  1206,  1193,
    2517,  2778,  2875,  1156,  2617,  2517,  2392,  1278,  2885,  1160,
    2517,  3767,  3768,  1704,  2517,  1161,  2884,  3916,  3646,  1226,
    1164,  3541,  3661,  3662,  1193,  2062,  2884,  3916,  2517,  2517,
    2906,   619,  4453,  3777,  2435,  1291,  2917,  2608,  2517,  3641,
    1680,  1165,  2919,  2920,  3792,  3793,  1206,  1193,   900,   901,
     609,   903,  1171,   905,   118,  3023,  3796,  3793,  1175,  2884,
    4289,  1280,  3711,  1176,  3717,   906,  2517,  2941,  3916,  1193,
    3916,   700,  2954,  3797,  3793,  1177,  1209,  1178,  1516,  2971,
    3916,  1079,  2445,  2393,  3956,  3856,  3431,  1214,  1215,  1216,
    1217,  1218,  1219,  1220,  1221,  1179,  3916,  1228,  3916,  1281,
    3916,  1206,   944,  2618,  1289,  3691,  2274,  3916,  2275,  1193,
    3253,  1290,  1602,  2886,  2887,   262,   944,   264,  3916,  1241,
   -1479,  2918,  3859,  3793,   704,  3866,  3867,  1193,  4003,  4004,
    1299,   705,  1193,  1297,  3916,  3916,   609,  2517,  1303,  2916,
    4400,  4008,  3793,  1311,  1557,  1558,  1559,  -785,  3390,  1321,
    3916,  3916,  1332,  2322,   119,  3916,  2340,  2341,  2342,   709,
     710,  2323,  1578,  4009,  3793,  3367,   590,  2953,  3368,  2063,
    4011,  3793,   120, -1479,  1193,  1517,  3369,  1292,  1193,  1227,
    4012,  3793,  3946,  3950,  1334,  -620,  1209,  1742,  3409,  1961,
    1962,  2471,  1351,  3370,  1641,  2394,  1352,  1645,  4017,  4018,
    2975,  1742,  2445,  2619, -1479,  1353, -1479,  3002,  4019,  4018,
    1606, -2563,  1356,  1193,  2446,  4457,  1662,  1663,  2983,   591,
    1667, -1479,  2425,  1211,  1212,  1964,  1359, -1479,   718,  1227,
    4075,  4076,  2030,  1227,  1209,  1367,  3371,  1368,   121,  1372,
    1681,  1682, -1479,  1034,  1035,  1967,  4203,  4004,  1384,  3543,
   -1479,  2737,  1581,  1968,  1393,  3544,  2031, -1479,  2395,  4204,
    4004,  4212,  3431,  2921,  1394,  2922,  2266, -1479,  1395,  1296,
     619,   619,   619,  4259,  4260,  2324,  2325,  1970,   609, -1479,
    1410,  2389,  2426,  1413, -1479,  4305,  4306,   729,  1417,  1209,
     592,  1453,  3372, -1479,  1971,  3545,  1418,  2735,   619,  4323,
    3317,  1680,   733,   734,  4403,  4404,  2923,  3808,  3809,  1607,
    2427,  -620,  1582,  1610,  1129,  2326,   504,   619,   619,   619,
    1611,   122,  1976,  4445,  4446,  1431,  3875,  2924,  1669,  1670,
    3162,  3946,  3875,  1211,  1212,  3950,  3164,  3587,  3166,  2626,
    1583,  3447,  3448,  2620,   619,  2425,  1434,  3613,  2910,  3119,
    3415,  3416,  2030,  1437,  1205,  1435, -1479,  3659,  3660,  1864,
    1679,  1442,  2925,  3546,  1447,  1214,  1215,  1216,  1217,  1218,
    1219,  1220,  1221,  1453,  4071,  1459,  2031,  1463, -1479,  2428,
    1466,  1211,  1212,  1461,  2425,   262,  1467,   264, -1479,  3373,
    2472,  1471,  3374,  1979,  1474,  1475,  1478,  1479,  1480,  1521,
    1612,  1980,  1522,  1523,  2473,  2426,  1526,  2621,  1528,  1584,
    1529,  2390,  1547,  1549,   804,   805,  1981,  1224,   808,   809,
   -1479,  1553,   811,  2517,   813,  3161,  2517,  2517,  2391,  2884,
    1580,  1560,  1591,  2427,  1169,  1626,  2622,  1637,  1589,  1638,
    2392,  1639,   619,  1677,  2426,  2517,  1687,   123,  1696,  1712,
    1718,  1738,  1745,  1614,  2429,  1746,  1756,  1749,  1752,  1753,
    2884,  1754,  1759,  1755,  1206,  3547,  1757,  1758, -1479,  3375,
    1982,  2884,  2427,  1761,  2884,  1214,  1215,  1216,  1217,  1218,
    1219,  1220,  1221,  1762,  1585,   753,  1785,  1788,  1983,  3718,
   -1479,  1797,  3719,   503,  3946,  3950,  3245,  1805,  1806,   609,
    1808,  1807,  2428,   759,  3302,  1812,  1815,  1817,   761,   897,
    2447,   762,  1816,  1826,   493,   124,  1831,  2393,  3312,  1840,
    2884,  1844,  1873,  1874,  -620,  1216,  1217,  1218,  1219,  1220,
    1221, -1479,  1875,  1878,   593,  3321,  1887,  3308,  3228,  3695,
    1876,  2428,  1987,  1889,  1988,  1891,  3231, -2563,  1904,  1913,
    3332,  2017,  1990,  1589,  1510,  2034,   594,   609,  2926,  2036,
    2035,  1189,  1190,  2037,  1679,  2038,  1207,  3720,  3721,  3345,
    3246,  1196,  1197,   125,  2039,  2040,   504,  2429,  4071,  2041,
    1216,  1217,  1218,  1219,  1220,  1221,  1291, -1479,   595,  1208,
    1615,  2042,  2043,   563,  2044,  1206,  3376,  2045,  2046, -1479,
   -1479,  2047,  2927,  2048,  4118,  1617,  1198,  1358,  3452,  1109,
    1159,  1163,  -816,  -620,  2054,   507,  2429,  1199,  2106, -1479,
    1996, -1479,  2049,  2050,  2840,  3377,  2051,  2052,  3334,  2394,
    2445,  2053,  2056,  2074,  2075,  3877,  2082,  3324,   898,  2101,
   -2563,  2092,  2446,  2093,   596, -1479, -1479,  3407,  2094, -1479,
   -1479,  2095,  1209,  2135,  2107,  2779,  2389,  1200,  2109,  2430,
     505,  2110,   522,  2111,  1598,  1599,  1600,  1601,  1602,  1201,
    3837, -1479,  1034,  1035,  2134,  3827,  4310,  1997,  2136,  2735,
    2143,  2141,  2142,  2151,  2156,  2145,  2160,  1961,  1962,  1586,
    2190,  2164,  2395,  1998,  -620,  2181,  1202,  1999,  2758,  3442,
    1206,  2182,   619,  2187,  2159,  1244,  2191,  2202,  2163,  2203,
    2204,   619,   899,  2217,  2224, -1168,  2000,  2705,  2230,   523,
    -768,  -768,  1221,  1964, -1479,  2262,  2240,   619,  1292, -1305,
    2186,  2269,  -768,  2287,  2002,  2358,  2296,  2302,  2276,  -620,
    2305,  2308,  3918,  1967,   504,  2338,   524,  2339,  1210,  2366,
    2778,  1968,  2354,  2368,  1203,  1680,  2370, -1479,  2371,  2375,
    2277,  2397,  4020,  1603,  1604,  1605,  1606,  2517,  2402,  2398,
    2401,  2404, -1479,  2278,  2410,  1970,  4310,  2517, -1479,  2884,
    2030,   525,  2430,  1209,  2279,  2415,  2390,  2408,  1680,  1453,
    2445,  2457,  1971,  2411,  2884,  2412,   609,  2466,  2517,  1211,
    1212, -1479,  2174,  2391,  2031,  2413,  2467,  2414, -1479,  1679,
    2626,  2462,  2463,  1213,  2469,  2392,  2476,  3988, -1479,  2479,
    1976,  2430,  2425,  4438,  2486,  2912,  -627,  2470,  2478,   526,
   -1479,  2485,  1679,  3538,  2280, -1479,  2281,  2492,  2491,  1679,
    2497,  2521,  2498,  2505, -1479,  1679,  4449,  2558,  2598,  4315,
    4316,  2525,  4318,  4438,   506,  2527,  2580,  2602,  2606,  4449,
    2611,  2637,  2638,  2282,  2639,  1607,  2248,  1608,  1609,  1610,
    2649,  2971,  2650,  1581,  2683,   507,  1611,  1581,  3539,  2662,
    2681,  2692,  2426,   262,  2684,   264,  2702,  2701,  1209,  3540,
     865,  1979,  2393,  2685,  2716,  2717,  3600,  3600,  3600,  1980,
    3680,  1864,   800,  4359,  2714,  4360,  4361, -1479,  2715,  2718,
    2427,  2727,   508,   619,  1981,  -535,  1191,  2729,   509,  1192,
    2724,  2730,  2731,  2738,  2283,  2742,  2744,  2739,  1792, -1479,
    1211,  1212,  2743,  1582,  2748,  3541,  1206,  1582,  2763, -1479,
    2760,  1214,  1215,  1216,  1217,  1218,  1219,  1220,  1221,  3977,
     -65,  2761,  -620,  2764,   510,   527,  1612,  3978,  2765,  3568,
    2346,  2846,   511,  4397,  4158,  2846,  2345,  2782,  1982,  2783,
    2784, -1479,  3988,  1915,   262,  2805,   264,  2808,  2284,  2428,
    2817,  3979,  3592,  3669,  2812,  2818,  1983,  1916,  1680,  2819,
    2840,  2835,  2842,  4430,  2843,   900,   901,   902,   903,   904,
     905,  2891,  2950,   619,  2394,  3542,  2960,  2893,  1613,  1614,
    2980,  2964,   906,  2966,  2981,  2985,  2990,  2989,  1989, -1479,
    3015,  1906,  2102,   528,  3024,  3029, -1764,  4155,  3035,   262,
    2847,   264,  3037,  3114,  2847,  1211,  1212,  3038,  3061,  3104,
    1987, -1479,  1988,   507,  3039,  3600,  3726,  3093,  3047,  3048,
    1990,  3091,  3109,   800,  2429,  3095,  3100,  4230,   800,  3121,
    4160,  -785,  3731,  3837,  2626,  3116,  1313,  2395,  3103,  3128,
    3160,  3145,  4230,  1215,  1216,  1217,  1218,  1219,  1220,  1221,
    3148,   529, -1479,  3159,  3165,  4240,  3124,   530,  3125,  3139,
    3173,  3193,  3142,   619,  3197,   800,  3212,  3980,  3198,  3201,
    3213,  3214,  3225,  3234,  3243,  2848,   531,  3242,  3244,  2848,
    3310,  3303,   800,  3306,  3314,  3316,  3309,  3317,  1996,  3769,
    3320,  3327,  -620,  3333,  1209,  3328,  3773,  -443,  2322,  3336,
    3342,   532,  3452,  3343,  3347,  3344,  3364,  3385, -1479,  3382,
    3386,  3393,  3394,  3411,  3332,  3412,  1615,  1917,   533,  3421,
    3423, -1479,  3426,   800,   800,   800,   800,  1034,  1035,  1193,
    1616,  1617,  3432,  3543,  3434,   800,  3445,   619,  3453,  3544,
   -1479,  3461, -1479,  3470,  3981,  1997,  3462,  1214,  1215,  1216,
    1217,  1218,  1219,  1220,  1221,  3471,  3483,  3491,  3494,  3750,
    3495,  1998,  3982,  3508,  3515,  1999, -1479, -1479,  1336,  3565,
   -1479, -1479,  2519,  3569,  3567,  3575,  3579,  3596,  1337,  3545,
    3588,  4230,  3589,  3593,  2000,  3983,  3610,  3590,  4158,  1918,
    3594,  4345,  3606,  3607,  1338,  3608,  3609,  3614,  3778,  3617,
    3620,  3622,  2002,  3624,  3625,   619,  1339,  1340,  1341,  3626,
    1247,  1034,  1035,  3633,  1919,  3629,   800,  3634,  3635,  3647,
     673,  3648,  1342,  3849,  3664,  3657,  3665,  3662,  3674,  2430,
    3676,  3163,  3677,  3682,  3681,  3685,  3600,  3600, -1394,  3600,
    3600,  1211,  1212,  1248,  4376, -1399,  3687,  3546,  3688,  3699,
    3712,  3713,  3715,  3716,  3732,  3729,  3740,  3555,  2626,  3744,
    3754,  3010,  4230,  3746,  4230,  3755,  3756,  3988,  3757,  3758,
    3760,  4396,  3761,  3558,  3779,  3798,  1920,  3780,  3795,  3799,
    2849,  3802,  4230,  3616,  2849,  3806,  3884,  3810,  3807,  3812,
    3813,  3814,  3825,  4427,  4355,  3826,  3829,  3845,  3830,  3840,
    3841,  3871,  3717,  3865,  3847,  3923,   609,  3878,  3885,   700,
    3880,  1249,  3927,  3919,  4230,  4230,  3879,  3600,  3952,  4442,
    3942,  3953,  3959,  3954,  3957,  3967,  4000,  4427,  3970,  4002,
    4013,  4005,  -309,  4023,  4041,  1250,  4050,  4062,  4066,  1251,
    4043,  4044,  4078,  4054,  4061,  4081,  4082,  4090,  4092,  3547,
     609,   944,  4094,  3974,  4087,  2945,  4123,  4120,  4126,  -327,
    4152,   619,   704,  4355,  4153,  1921,  4174,  3984,  4154,   705,
    4171,  4177,   800,  1252,  4189,  4213,  4201,  3924,  4205,  4206,
    4216,  3883,  4217,  1214,  1215,  1216,  1217,  1218,  1219,  1220,
    1221,  4014,  4226,  1253,  4237,  4227,  4207,   709,   710,  4208,
    4238,  4239,  4242,  4231,  4249,  4263,  4264,  1254,  4265,  4266,
    4274,  4281,  4027,  4275,  4286,  4288,  4290,  4034,  4291, -2299,
    4294,  3968,  4300,  4303,  4317,  4314,  4319,   800,   800,  4320,
    4347,  4322,  1343,  4455,  4327,  4349,   800,   800,   800,   800,
     800,   800,   800,   800,   800,   800,   800,   800,   800,  1344,
    4333,  4352,  4364,  4346, -1563,  1255,   800,   800,  4365,   800,
    4369,   800,  4363,  4374,  4370,   800,   718,  4377,   800,   800,
     800,   800,  4380,   800,   800,   800,  4382,  1256,  4385,  4383,
    4389,  4391,   800,   800,  4394,   800,   800,   800,   800,   800,
    4395,  1680,   800,   800,   800,   800,   800,   800,   800,   800,
     800,   800,   800,  4406,  4398,   800,   800,  4188,  4402,   800,
    4415,  4408,  4416,   800,  4439,   800,   800,  4443,  4452,  4036,
    2709,  2550,  3577,  2855,  3849,   729,  3849,  3578,  4099,   800,
     800,  1057,  3783,  4051,  4161,  4301,  3751,   800,  4302,  1465,
     733,   734,  3781,  3785,   800,   800,   800,  3922,   800,  4450,
    4410,   577,  4056,   956,  4127,   800,   800,   800,  3147,   800,
     800,   800,   800,   800,  2330,   800,   800,   800,   800,   800,
     800,   800,   800,  3896,  3897,  1345,   800,   800,  3899,  1257,
    3900,  3902,  4420,  4168,  3903,  4330,  3904,  4224,  1258,  3905,
    3906,  3907,  4331,  3910,  4299,  3911,  4236,  3912,  4235,  1525,
    3974,  1957,  2251,  1259,  2509,  2028,  4053,  2003,  3238,  3127,
     619,  3667,  3425,  2707,  1795,  4176,  4194,  4248,  3132,  3969,
    3670,  1260,  4379,  4313,  4354,  2059,  1958,  4089,   660,  3789,
    1346,  3325,  2507,  1959,  3507,  1960,  3008,  2514,  3496,  2947,
    3500,  4328,  4021,  3379,  3873,  3564,  1961,  1962,  1347,  3523,
    3759,  4173,  3749,   800,  4105,  3459,   518,   519,  4211,  4210,
    1261,  1262,  2091,  4064,  4058,  4063,  2592,  3941,  3876,  1009,
    2511,  3498,  2386,  2935,  1890,  3728,  2057,  1963,  4167,  4312,
     980,  2745,  1964,  1965,  3497,  2314,  1263,  2725,  3118,  1966,
    2766,  2026,  2680,  1433,  3422,  1680,  1363,  3917,  4181,  4182,
    2629,  2344,  1967,  1636,  3410,   497,  2627,  2830,  1264,   498,
    1968,  3467,  3102,   800,  4272,  2679,   619,  4007,  3853,  3576,
    1969,   800,  4273,   753,  3502,  1579,  2699,  3718,  1907,  1083,
    3719,  2971,  2971,  3850,  1970,  3184,  4401,  2930,  3839,  2773,
    2596,   759,  1779,  1810,  3672,  2723,   761,  2751,  1453,   762,
    3438,  1971,  3437,  3477,  4245,   968,  1075,  1265,  1972,  1973,
    2377,  2100,  2263,   952,  2378,  1974,  1121,  3506,  1856,  1879,
    3424,  1814,  4350,  1975,  4267,  4378,  4321,  -891,  4451,  1976,
    4454,  3753,   619,  1139,  3441,  3181,  2355,  3686,  3463,  2301,
     893,  3842,  1829,  1821,  3958,  1350,  1772,  3966,  3106,   895,
     654,   655,  4256,  4257,  2081,  3720,  3721,     0,  1977,  1355,
    1061,  4335,  1062,     0,  1063,  1487,     0,     0,  4343,     0,
       0,     0,     0,  2016,     0,     0,     0,  1183,     0,     0,
       0,     0,     0,     0,     0,   817,   818,     0,     0,     0,
       0,     0,   262,     0,   264,     0,     0,     0,  1978,     0,
    1979,     0,     0,     0,     0,     0,  4444,     0,  1980,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1981,     0,  1488,  1489,  1490,  1491,  1492,
    1493,     0,  1494,  1495,  1496,  1497,  1498,  1499,  1500,  4387,
    1501,  1502,     0,     0,  4392,  4326,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   800,     0,     0,     0,     0,     0,  1312,     0,     0,
       0,  1247,     0,     0,     0,     0,   819,  1982,     0,     0,
       0,  4428,     0,     0,     0,     0,     0,     0,     0,     0,
    1680,     0,     0,     0,     0,  1983,     0,     0,     0,  1984,
       0,     0,     0,     0,  1248,   820,     0,     0,     0,   619,
       0,     0,     0,  1680,     0,  4428,     0,     0,   821,     0,
    1680,     0,     0,     0,     0,     0,  1680,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1985,     0,     0,
       0,   822,  1986,     0,   823,     0,     0,     0,     0,  1987,
       0,  1988,     0,     0,     0,   824,     0,     0,  1989,  1990,
       0,     0,     0,     0,     0,     0,     0,  1503,  1504,     0,
       0,     0,  1249,   800,   800,   800,   825,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   800,     0,     0,
    1991,     0,     0,     0,     0,     0,  1250,     0,     0,     0,
    1251,     0,     0,   826,  1992,  1993,  1994,  1995,     0,     0,
     827,     0,     0,   800,     0,     0,     0,     0,     0,   800,
       0,     0,   800,  1486,   800,     0,     0,  1996,     0,     0,
     800,     0,   800,   800,  1252,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     828,     0,     0,     0,  1253,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1254,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1551,  1552,
       0,     0,     0,     0,  1997,     0,     0,  1562,  1563,     0,
       0,  1566,  1567,  1568,  1571,  1572,  1573,  1574,  1575,  1576,
    1998,   818,     0,   800,  1999,     0,     0,  1592,  1593,     0,
    1594,     0,  1595,     0,     0,     0,  1255,     0,     0,  1628,
    1629,  1630,  1631,  2000,     0,  1634,     0,     0,  2001,     0,
       0,     0,     0,  1642,  1643,     0,  1646,  1647,  1256,     0,
       0,  2002,     0,  1651,  1652,  1653,     0,     0,  1656,  1657,
    1658,  1659,  1660,  1661,     0,     0,  1664,  1665,     0,     0,
    1668,     0,     0,     0,  1671,     0,  1675,  1676,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   829,     0,
    1683,  1684,   830,     0,     0,     0,     0,     0,  1692,     0,
       0,   819,     0,     0,     0,  1697,  1698,  1699,   831,     0,
       0,     0,     0,     0,  -891,     0,   832,     0,     0,     0,
       0,     0,     0,     0,   833,     0,     0,     0,     0,     0,
     820,     0,     0,     0,     0,     0,     0,     0,  1735,     0,
       0,     0,     0,   821,     0,     0,     0,     0,     0,   834,
    1257,     0,     0,     0,     0,     0,     0,     0,     0,  1258,
       0,     0,   835,   836,     0,     0,   822,     0,     0,   823,
       0,     0,     0,     1,  1259,     2,     0,     0,     0,     0,
     824,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     3,  1260,     0,     0,     4,     0,     0,     0,     0,
       0,   825,     0,     0,     0,     0,     0,   837,     0,     5,
       6,     0,     0,     0,  1782,     0,  2016,     7,     0,     0,
       0,     0,     8,     9,     0,     0,     0,     0,   826,     0,
       0,  1261,  1262,     0,     0,   827,     0,     0,   838,     0,
       0,     0,     0,     0,    10,     0,   800,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1263,     0,     0,
     839,     0,   840,    11,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1828,   828,     0,     0,     0,  1264,
       0,     0,  1843,     0,    12,     0,     0,     0,     0,     0,
       0,     0,    13,    14,    15,     0,     0,     0,     0,  2016,
       0,     0,     0,     0,    16,    17,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   800,     0,    18,     0,   800,
       0,     0,     0,     0,   800,   800,     0,     0,  1265,     0,
       0,    19,     0,   800,   800,     0,   800,   800,   800,   800,
       0,   800,     0,     0,   800,     0,     0,    20,     0,     0,
       0,     0,     0,     0,   800,     0,   800,   800,     0,   800,
     800,   800,   800,    21,   800,     0,     0,   800,    22,     0,
       0,     0,    23,     0,     0,     0,   800,     0,     0,     0,
       0,     0,     0,   800,     0,   800,     0,   800,   800,   800,
     800,     0,     0,     0,   800,   800,   800,    24,     0,    25,
     800,   800,   800,   829,   800,     0,   800,     0,   800,     0,
     800,     0,   800,     0,     0,    26,     0,   800,     0,     0,
       0,     0,     0,   831,     0,     0,     0,     0,     0,     0,
       0,   832,     0,    27,     0,   800,     0,    28,     0,   833,
       0,     0,   800,     0,     0,   800,     0,     0,     0,     0,
       0,   800,     0,     0,   800,     0,     0,     0,   800,     0,
       0,     0,     0,     0,   834,     0,     0,     0,     0,     0,
       0,     0,  2112,     0,  1961,  1962,     0,   835,   836,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  -768,  -768,     0,
    1964,     0,     0,     0,   800,     0,     0,     0,     0,  -768,
       0,     0,   837,     0,     0,     0,     0,    29,     0,     0,
    1967,     0,     0,     0,     0,     0,     0,     0,  1968,     0,
       0,     0,     0,     0,    30,     0,     0,     0,    31,     0,
       0,     0,     0,   838,     0,     0,     0,     0,     0,    32,
       0,     0,  1970,     0,     0,     0,     0,     0,     0,     0,
      33,     0,     0,     0,     0,   839,  1453,   840,     0,  1971,
       0,     0,     0,     0,  2194,  2196,  2198,     0,     0,     0,
       0,     0,    34,     0,     0,    35,     0,    36,     0,     0,
      37,     0,     0,    38,    39,     0,     0,  1976,     0,     0,
       0,    40,     0,    41,     0,     0,     0,     0,     0,     0,
      42,     0,     0,     0,  2232,     0,    43,     0,     0,  2853,
       0,     0,     0,  2237,    44,  2238,     0,     0,     0,    45,
       0,    46,     0,     0,    47,     0,     0,  2853,  2853,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    48,
     262,     0,   264,    49,     0,     0,     0,     0,  1979,     0,
       0,     0,     0,     0,     0,     0,  1980,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1981,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2310,  2582,     0,     0,    50,  2016,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      51,     0,     0,     0,    52,     0,     0,    53,     0,     0,
       0,     0,     0,    54,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1982,     0,     0,     0,     0,
       0,     0,     0,     0,  2853,  2853,     0,     0,     0,     0,
       0,     0,    55,  1983,     0,     0,     0,     0,    56,   890,
     818,     0,     0,     0,     0,     0,     0,     0,    57,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  2016,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   800,     0,     0,     0,   800,
       0,     0,     0,     0,     0,     0,     0,  1987,     0,  1988,
       0,     0,     0,     0,     0,     0,     0,  1990,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   800,
     800,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   800,
     819,     0,     0,     0,     1,     0,     2,     0,   800,     0,
     800,     0,   800,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     4,     0,     0,   820,
       0,     0,   800,     0,     0,  1996,     0,   800,     0,     0,
       5,     6,   821,     0,     0,     0,     0,     0,     7,     0,
       0,     0,     0,     8,     9,     0,     0,     0,     0,     0,
       0,   800,     0,     0,     0,   822,     0,     0,   823,     0,
       0,     0,     0,     0,     0,    10,     0,  2526,     0,   824,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1997,     0,    11,     0,     0,     0,     0,     0,
     825,     0,     0,     0,     0,     0,     0,     0,  1998,     0,
       0,     0,  1999,     0,     0,    12,     0,     0,     0,     0,
       0,     0,     0,    13,    14,    15,   800,   826,     0,     0,
     800,  2000,     0,     0,   827,    16,    17,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2605,     0,     0,  2002,
    2607,     0,     0,     0,     0,  2609,  2610,     0,     0,     0,
       0,     0,    19,     0,  1568,  2628,     0,  1568,     0,  2631,
    2632,     0,  2633,     0,   828,     0,     0,   800,    20,     0,
       0,     0,     0,     0,     0,  2640,     0,  2641,     0,     0,
    2643,  2644,  2645,  2646,    21,  2647,     0,     0,     0,    22,
       0,     0,     0,    23,     0,     0,  2583,  2651,     0,     0,
       0,     0,     0,     0,  2652,     0,  2653,     0,  2654,  2655,
    2656,     0,     0,     0,     0,  2659,  2660,  2661,    24,     0,
      25,  2663,  2664,  2665,     0,  2666,     0,  2668,     0,  2670,
       0,  2672,     0,  2673,     0,     0,    26,     0,  2674,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    27,     0,  2687,     0,    28,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2697,     0,     0,  2700,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   800,   800,
       0,     0,   829,     0,     0,     0,   891,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   831,  2853,     0,     0,     0,     0,     0,     0,
     832,     0,     0,     0,     0,     0,     0,     0,   833,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2016,     0,     0,     0,     0,     0,     0,    29,     0,
       0,     0,     0,   834,   800,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,    30,   835,   836,     0,    31,
       0,     0,     0,  1598,  1599,  1600,  1601,  1602,     0,     0,
      32,     0,     0,     0,     0,     0,     0,   800,   800,     0,
     800,    33,     0,     0,     0,     0,     0,     0,     0,   800,
       0,     0,     0,     0,   800,     0,     0,   800,     0,   800,
     800,   837,     0,    34,     0,     0,    35,     0,    36,     0,
       0,    37,     0,     0,    38,    39,     0,     0,     0,     0,
     800,     0,    40,     0,    41,     0,     0,     0,     0,     0,
       0,    42,   838,     0,     0,   800,     0,    43,     0,     0,
       0,     0,     0,     0,     0,    44,     0,     0,     0,     0,
      45,     0,    46,     0,   839,    47,   840,     0,     0,   800,
       0,     0,  1603,  1604,  1605,  1606,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      48,     0,     0,     0,    49,     0,     0,     0,     0,   800,
       0,  3247,  3248,     0,     0,     0,     0,  3249,     0,  3250,
       0,  3251,  3252,   800,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3253,     0,
       0,     0,     0,     0,   800,     0,     0,     0,     0,    50,
       0,     0,     0,   800,     0,     0,     0,     0,     0,     0,
       0,    51,     0,     0,     0,    52,     0,     0,    53,     0,
       0,     0,     0,     0,    54,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1607,     0,  1608,  1609,  1610,     0,
       0,     0,     0,  3254,     0,  1611,  3255,   912,     0,     0,
       0,     0,     0,    55,  3256,     0,     0,   869,   913,    56,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    57,
       0,  3257,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   914,   915,     0,  3554,     0,     0,  3258,     0,
     916,     0,     0,     0,     0,   917,  3020,     0,     0,     0,
    3022,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3259,     0,  3260,     0,     0,     0,     0,     0,
       0,     0,   918,     0,   919,  1612,   920,  3261,  3262,     0,
    3050,  3051,     0,     0,     0,   921,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3071,     0,     0,     0,     0,     0,     0,     0,     0,  3081,
       0,  3083,     0,  3085,     0,     0,     0,     0,     0,     0,
    3263,     0,     0,     0,     0,     0,     0,  1613,  1614,     0,
       0, -1764,   922,     0,     0,     0,     0,   923,     0,     0,
     924,     0,     0,     0,     0,     0,     0,     0,     0,  3264,
       0,     0,     0,     0,     0,     0,     0,     0,  3265,  3266,
       0,  3267,  3115,     0,     0,     0,   925,     0,   926,     0,
       0,     0,     0,     0,     0,   927,   800,   928,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3268,  3269,  3270,     0,     0,     0,     0,     0,     0,
       0,     0,   929,   930,   931,     0,     0,     0,     0,     0,
    3271,  3272,  3273,     0,     0,   800,   800,  3274,     0,     0,
    3275,     0,     0,     0,   800,   932,     0,  3171,     0,     0,
       0,  3175,     0,     0,     0,     0,  3276,  3277,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   933,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1615,     0,     0,     0,     0,
       0,     0,  3278,  3279,   934,     0,     0,     0,  3207,  1616,
    1617,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3554,     0,     0,     0,     0,     0,  3280,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  2016,     0,     0,   935,
       0,     0,     0,     0,     0,     0,     0,     0,  3281,     0,
       0,     0,  3282,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3283,   936,     0,     0,   800,     0,
       0,     0,   800,     0,     0,     0,   937,   938,     0,     0,
     939,   940,     0,     0,     0,     0,     0,  2933,     0,     0,
       0,     0,     0,     0,  1959,     0,     0,     0,     0,  3304,
    3305,   941,     0,   800,     0,     0,     0,  1961,  1962,     0,
       0,     0,     0,     0,     0,     0,     0,   800,  3284,     0,
       0,  3285,     0,     0,  3286,  3287,  3288,  3289,     0,     0,
     800,     0,     0,     0,     0,     0,     0,     0,  1963,     0,
       0,     0,     0,  1964,   942,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   943,     0,     0,
       0,     0,     0,  1967,     0,  3350,     0,     0,  3290,  3291,
       0,  1968,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1969,     0, -2329,     0,     0,     0,   944,     0,     0,
       0,     0,     0,     0,  3292,  1970,     0,     0,  3388,  3389,
       0,     0,     0,     0,     0,   945,   946,     0,     0,  1453,
    3396,     0,  1971,  3914,     0,  3398,     0,     0,  3399,  1972,
    3400,  3401,     0,     0,     0,     0,  2934,     0,     0,     0,
       0,     0,     0,  3940,  1975,     0,     0,  3940,  3940,     0,
    1976,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   947,     0,  3418,     0,     0,     0,
       0,     0,     0,     0,     0, -2329,     0,     0,   800,  1977,
       0,     0,     0,   948,     0,     0,   800,     0,     0,     0,
    3418,     0,     0,     0,     0,   800,     0,   800,     0,     0,
       0,     0,     0,     0,  1961,  1962,     0,     0,     0,     0,
       0,     0,     0,   262,     0,   264,     0,     0,     0,     0,
       0,  1979,     0,     0,     0,     0,     0,     0,     0,  1980,
       0,     0,     0,     0,  3464,     0,   800,  -768,  -768,     0,
    1964,     0,  3914,  3914,  1981,     0,     0,     0,     0,  -768,
       0,     0,     0,     0,     0,  3418,     0,     0,     0,     0,
    1967,     0,     0,     0,  3488,     0,     0,     0,  1968,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3940,     0,     0,
       0,     0,  1970,     0,     0,     0,  3940,     0,  1982,     0,
    3940,     0,     0,     0,     0,   800,  1453,     0,     0,  1971,
       0,     0,     0,     0,     0,     0,  1983,     0,     0,     0,
    1984,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1976,     0,     0,
       0,     0,   800,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3940,     0,  1986,     0,     0,     0,     0,     0,     0,
    1987,     0,  1988,     0,   800,     0,   800,     0,     0,     0,
    1990,     0,     0,     0,     0,     0,   800,     0,  3914,  3914,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     262,     0,   264,     0,     0,     0,     0,     0,  1979,     0,
       0,     0,     0,  4169,     0,     0,  1980,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1993,     0,     0,     0,
       0,  1981,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1996,     0,
       0,     0,     0,     0,     0,     0,     0,  3940,     0,  3940,
    3940,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     800,     0,  3914,     0,     0,  1982,     0,  3418,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3914,   800,     0,
       0,     0,     0,  1983,     0,  1997,     0,     0,     0,     0,
    3914,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1998,     0,   800,     0,  1999,  3697,  3698,     0,     0,
       0,     0,     0,     0,     0,  3207,     0,     0,     0,     0,
       0,     0,     0,     0,  2000,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1987,     0,  1988,
       0,     0,  2002,     0,     0,     0,     0,  1990,     0,     0,
       0,     0,     0,   800,  3914,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3914,  3914,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   800,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1996,  3914,     0,     0,     0,
       0,     0,     0,   800,     0,     0,  3914,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3207,
     800,     0,     0,  3805,     0,     0,     0,  3914,     0,  3914,
       0,     0,  1997,     0,     0,     0,     0,     0,     0,  3914,
       0,     0,     0,   800,     0,     0,   800,     0,  1998,     0,
       0,     0,  1999,     0,  3418,  3914,     0,  3914,     0,  3914,
       0,     0,     0,     0,     0,     0,  3914,     0,  3207,     0,
       0,  2000,     0,     0,     0,     0,     0,  3914,     0,     0,
       0,  3171,     0,     0,     0,     0,     0,     0,     0,  2002,
       0,     0,     0,  3914,  3914,     0,     0,     0,     0,   800,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3914,
    3914,     0,     0,     0,  3914,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   800,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3994,     0,     0,
       0,     0,     0,     0,     0,     0,  3999,     0,  4001,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  4022,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3207,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  3207,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  4121,     0,  4122,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  4130,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  4228,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  4233,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3418,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     139,     0,   669,   141,   142,   143,   144,     0,     0,   145,
       0,     0,     0,   146,  4284,     0,   670,     0,   148,   149,
     150,   151,   152,   671,   154,     0,   155,     0,     0,   672,
     156,   673,   674,   675,   157,   676,     0,   158,   159,   160,
    1672,   161,     0,   162,   163,     0,     0,   164,   677,   678,
     165,   166,     0,   167,   679,   680,   169,   170,     0,   171,
     172,   173,   174,   175,   681,   177,     0,   682,   179,   683,
     684,   685,   686,   687,   688,     0,   186,   187,   188,   189,
     190,   191,   192,   193,  4337,   194,   195,     0,   196,   197,
     198,   689,   200,     0,   201,   690,   691,   202,     0,     0,
     203,   692,   693,     0,   204,   694,   695,     0,   205,   206,
     207,   696,   697,   698,     0,     0,     0,     0,   699,   210,
     700,  4362,     0,   701,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
       0,     0,   219,   220,   221,     0,     0,  4381,   222,     0,
     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,   234,   235,   702,     0,   236,
     237,   238,   703,   704,   239,   240,     0,   241,   242,   243,
     705,     0,   244,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   706,   251,   707,   253,     0,   254,
    4429,   708,     0,   255,   256,   257,     0,   258,   709,   710,
       0,   259,   260,     0,     0,     0,   711,   262,   263,   264,
     712,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,   713,   270,   271,   714,     0,     0,   272,     0,
     273,   274,     0,   275,   276,     0,     0,  3418,   277,     0,
       0,   278,   279,   715,     0,  1673,   281,     0,   716,   282,
     283,     0,     0,     0,     0,     0,   717,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,   718,     0,     0,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,   719,
     306,   307,   308,   309,   720,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   721,   317,     0,     0,   722,
     319,   723,   320,     0,   321,   724,   725,   726,   727,   728,
     326,   327,   328,   329,   330,     0,   729,   331,   332,     0,
       0,   333,   334,   335,   336,   730,   731,   732,   337,   338,
       0,   733,   734,     0,   339,   340,   735,     0,   342,   343,
     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
       0,     0,     0,   348,   349,   350,     0,   736,   351,     0,
     352,   353,   354,   355,   737,   357,   358,   359,   360,   738,
     739,   363,   740,     0,   364,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   741,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
       0,   389,   390,   391,   742,   743,   392,     0,   393,     0,
     394,   395,     0,   396,   397,     0,     0,   744,   398,   399,
     400,   401,   402,   745,   404,   405,   406,   407,     0,   746,
     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,   431,   432,   747,   748,   433,   434,
       0,   435,   436,   749,   438,   439,   440,   750,   751,   441,
     442,   443,   444,   752,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,   753,   452,   453,     0,   754,   755,
     756,   757,     0,     0,     0,     0,  1674,   458,   459,   460,
       0,   758,   759,   760,   462,   463,   464,   761,   465,   466,
     762,   467,   468,     0,   469,   470,     0,     0,   471,     0,
       0,   472,     0,   473,     0,   763,   475,   476,     0,     0,
     764,   765,   766,   767,   477,     0,     0,   478,   768,     0,
     769,   479,   480,   481,   482,   483,   770,     0,     0,     0,
       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
       0,   771,     0,     0,     0,     0,   772,   773,     0,     0,
       0,     0,   774,   775,     0,     0,   776,   777,     0,     0,
     778,   779,   139,     0,   669,   141,   142,   143,   144,  3167,
       0,   145,     0,     0,     0,   146,     0,     0,   670,     0,
     148,   149,   150,   151,   152,   671,   154,     0,   155,     0,
       0,  3168,   156,   673,   674,   675,   157,   676,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
     677,   678,   165,   166,     0,   167,   679,   680,   169,   170,
       0,   171,   172,   173,   174,   175,   681,   177,     0,   682,
     179,   683,   684,   685,   686,   687,   688,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   689,   200,     0,   201,   690,   691,   202,
       0,     0,   203,   692,   693,     0,   204,   694,   695,     0,
     205,   206,   207,   696,   697,   698,     0,     0,     0,     0,
     699,   210,   700,     0,     0,  3169,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,   702,
       0,   236,   237,   238,   703,   704,   239,   240,     0,   241,
     242,   243,   705,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   706,   251,   707,   253,
       0,   254,     0,   708,     0,   255,   256,   257,     0,   258,
     709,   710,     0,   259,   260,     0,     0,     0,   711,   262,
     263,   264,   712,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,   713,   270,   271,   714,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   715,     0,     0,   281,     0,
     716,   282,   283,     0,     0,     0,     0,     0,   717,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,   718,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,   719,   306,   307,   308,   309,   720,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   721,   317,     0,
       0,   722,   319,   723,   320,     0,   321,   724,   725,   726,
     727,   728,   326,   327,   328,   329,   330,     0,   729,   331,
     332,     0,     0,   333,   334,   335,   336,   730,   731,   732,
     337,   338,     0,   733,   734,     0,   339,   340,   735,  3170,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,   736,
     351,     0,   352,   353,   354,   355,   737,   357,   358,   359,
     360,   738,   739,   363,   740,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   741,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,   742,   743,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,   744,
     398,   399,   400,   401,   402,   745,   404,   405,   406,   407,
       0,   746,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,   747,   748,
     433,   434,     0,   435,   436,   749,   438,   439,   440,   750,
     751,   441,   442,   443,   444,   752,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   753,   452,   453,     0,
     754,   755,   756,   757,     0,     0,     0,     0,     0,   458,
     459,   460,     0,   758,   759,   760,   462,   463,   464,   761,
     465,   466,   762,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   763,   475,   476,
       0,     0,   764,   765,   766,   767,   477,     0,     0,   478,
     768,     0,   769,   479,   480,   481,   482,   483,   770,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,     0,   771,     0,     0,     0,     0,   772,   773,
       0,     0,     0,     0,   774,   775,     0,     0,   776,   777,
       0,     0,   778,   779,   139,     0,   669,   141,   142,   143,
     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
     670,     0,   148,   149,   150,   151,   152,   671,   154,     0,
     155,     0,     0,   672,   156,   673,   674,   675,   157,   676,
       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
       0,   164,   677,   678,   165,   166,     0,   167,   679,   680,
     169,   170,     0,   171,   172,   173,   174,   175,   681,   177,
       0,   682,   179,   683,   684,   685,   686,   687,   688,     0,
     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
     195,     0,   196,   197,   198,   689,   200,     0,   201,   690,
     691,   202,     0,     0,   203,   692,   693,     0,   204,   694,
     695,     0,   205,   206,   207,   696,   697,   698,     0,     0,
       0,     0,   699,   210,   700,     0,     0,   701,   211,     0,
     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
     235,   702,     0,   236,   237,   238,   703,   704,   239,   240,
       0,   241,   242,   243,   705,     0,   244,     0,     0,     0,
     245,  2193,   246,     0,   247,     0,   248,   249,   706,   251,
     707,   253,     0,   254,     0,   708,     0,   255,   256,   257,
       0,   258,   709,   710,     0,   259,   260,     0,     0,     0,
     711,   262,   263,   264,   712,     0,   265,   266,   267,     0,
     268,     0,   269,     0,     0,     0,   713,   270,   271,   714,
       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
       0,     0,   277,     0,     0,   278,   279,   715,     0,     0,
     281,     0,   716,   282,   283,     0,     0,     0,     0,     0,
     717,   285,     0,   286,     0,   287,     0,   288,   289,     0,
       0,   718,     0,     0,     0,     0,   290,   291,   292,   293,
     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
     303,   304,   305,   719,   306,   307,   308,   309,   720,   310,
     311,     0,     0,     0,     0,   312,   313,   314,   315,   721,
     317,     0,     0,   722,   319,   723,   320,     0,   321,   724,
     725,   726,   727,   728,   326,   327,   328,   329,   330,     0,
     729,   331,   332,     0,     0,   333,   334,   335,   336,   730,
     731,   732,   337,   338,     0,   733,   734,     0,   339,   340,
     735,     0,   342,   343,   344,   345,     0,   346,   347,     0,
       0,     0,     0,     0,     0,     0,     0,   348,   349,   350,
       0,   736,   351,     0,   352,   353,   354,   355,   737,   357,
     358,   359,   360,   738,   739,   363,   740,     0,   364,   365,
     366,     0,   367,     0,   368,   369,   370,   371,   372,     0,
     741,   374,   375,     0,     0,   376,     0,     0,     0,   377,
     378,   379,   380,   381,     0,     0,   382,   383,   384,   385,
     386,     0,   387,   388,     0,   389,   390,   391,   742,   743,
     392,     0,   393,     0,   394,   395,     0,   396,   397,     0,
       0,   744,   398,   399,   400,   401,   402,   745,   404,   405,
     406,   407,     0,   746,   409,     0,     0,     0,   410,   411,
     412,   413,     0,     0,     0,   414,     0,     0,     0,   415,
       0,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,   425,     0,     0,     0,     0,     0,     0,   426,   427,
       0,   428,     0,     0,   429,     0,     0,   430,   431,   432,
     747,   748,   433,   434,     0,   435,   436,   749,   438,   439,
     440,   750,   751,   441,   442,   443,   444,   752,   445,   446,
       0,   447,     0,   448,   449,   450,   451,     0,   753,   452,
     453,     0,   754,   755,   756,   757,     0,     0,     0,     0,
       0,   458,   459,   460,     0,   758,   759,   760,   462,   463,
     464,   761,   465,   466,   762,   467,   468,     0,   469,   470,
       0,     0,   471,     0,     0,   472,     0,   473,     0,   763,
     475,   476,     0,     0,   764,   765,   766,   767,   477,     0,
       0,   478,   768,     0,   769,   479,   480,   481,   482,   483,
     770,     0,     0,     0,     0,     0,     0,   485,   486,     0,
     487,   488,   489,     0,     0,   771,     0,     0,     0,     0,
     772,   773,     0,     0,     0,     0,   774,   775,     0,     0,
     776,   777,     0,     0,   778,   779,   139,     0,   669,   141,
     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
       0,     0,   670,     0,   148,   149,   150,   151,   152,   671,
     154,     0,   155,     0,     0,   672,   156,   673,   674,   675,
     157,   676,     0,   158,   159,   160,     0,   161,     0,   162,
     163,     0,     0,   164,   677,   678,   165,   166,     0,   167,
     679,   680,   169,   170,     0,   171,   172,   173,   174,   175,
     681,   177,     0,   682,   179,   683,   684,   685,   686,   687,
     688,     0,   186,   187,   188,   189,   190,   191,   192,   193,
       0,   194,   195,     0,   196,   197,   198,   689,   200,     0,
     201,   690,   691,   202,     0,     0,   203,   692,   693,     0,
     204,   694,   695,     0,   205,   206,   207,   696,   697,   698,
       0,     0,     0,     0,   699,   210,   700,     0,     0,   701,
     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
     233,   234,   235,   702,     0,   236,   237,   238,   703,   704,
     239,   240,     0,   241,   242,   243,   705,     0,   244,     0,
       0,     0,   245,  2195,   246,     0,   247,     0,   248,   249,
     706,   251,   707,   253,     0,   254,     0,   708,     0,   255,
     256,   257,     0,   258,   709,   710,     0,   259,   260,     0,
       0,     0,   711,   262,   263,   264,   712,     0,   265,   266,
     267,     0,   268,     0,   269,     0,     0,     0,   713,   270,
     271,   714,     0,     0,   272,     0,   273,   274,     0,   275,
     276,     0,     0,     0,   277,     0,     0,   278,   279,   715,
       0,     0,   281,     0,   716,   282,   283,     0,     0,     0,
       0,     0,   717,   285,     0,   286,     0,   287,     0,   288,
     289,     0,     0,   718,     0,     0,     0,     0,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     302,     0,   303,   304,   305,   719,   306,   307,   308,   309,
     720,   310,   311,     0,     0,     0,     0,   312,   313,   314,
     315,   721,   317,     0,     0,   722,   319,   723,   320,     0,
     321,   724,   725,   726,   727,   728,   326,   327,   328,   329,
     330,     0,   729,   331,   332,     0,     0,   333,   334,   335,
     336,   730,   731,   732,   337,   338,     0,   733,   734,     0,
     339,   340,   735,     0,   342,   343,   344,   345,     0,   346,
     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
     349,   350,     0,   736,   351,     0,   352,   353,   354,   355,
     737,   357,   358,   359,   360,   738,   739,   363,   740,     0,
     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
     372,     0,   741,   374,   375,     0,     0,   376,     0,     0,
       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
     742,   743,   392,     0,   393,     0,   394,   395,     0,   396,
     397,     0,     0,   744,   398,   399,   400,   401,   402,   745,
     404,   405,   406,   407,     0,   746,   409,     0,     0,     0,
     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
     431,   432,   747,   748,   433,   434,     0,   435,   436,   749,
     438,   439,   440,   750,   751,   441,   442,   443,   444,   752,
     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
     753,   452,   453,     0,   754,   755,   756,   757,     0,     0,
       0,     0,     0,   458,   459,   460,     0,   758,   759,   760,
     462,   463,   464,   761,   465,   466,   762,   467,   468,     0,
     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
       0,   763,   475,   476,     0,     0,   764,   765,   766,   767,
     477,     0,     0,   478,   768,     0,   769,   479,   480,   481,
     482,   483,   770,     0,     0,     0,     0,     0,     0,   485,
     486,     0,   487,   488,   489,     0,     0,   771,     0,     0,
       0,     0,   772,   773,     0,     0,     0,     0,   774,   775,
       0,     0,   776,   777,     0,     0,   778,   779,   139,     0,
     669,   141,   142,   143,   144,     0,     0,   145,     0,     0,
       0,   146,     0,     0,   670,     0,   148,   149,   150,   151,
     152,   671,   154,     0,   155,     0,     0,   672,   156,   673,
     674,   675,   157,   676,     0,   158,   159,   160,     0,   161,
       0,   162,   163,     0,     0,   164,   677,   678,   165,   166,
       0,   167,   679,   680,   169,   170,     0,   171,   172,   173,
     174,   175,   681,   177,     0,   682,   179,   683,   684,   685,
     686,   687,   688,     0,   186,   187,   188,   189,   190,   191,
     192,   193,     0,   194,   195,     0,   196,   197,   198,   689,
     200,     0,   201,   690,   691,   202,     0,     0,   203,   692,
     693,     0,   204,   694,   695,     0,   205,   206,   207,   696,
     697,   698,     0,     0,     0,     0,   699,   210,   700,     0,
       0,   701,   211,     0,   212,     0,     0,     0,   213,     0,
     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
     231,   232,   233,   234,   235,   702,     0,   236,   237,   238,
     703,   704,   239,   240,     0,   241,   242,   243,   705,     0,
     244,     0,     0,     0,   245,  2197,   246,     0,   247,     0,
     248,   249,   706,   251,   707,   253,     0,   254,     0,   708,
       0,   255,   256,   257,     0,   258,   709,   710,     0,   259,
     260,     0,     0,     0,   711,   262,   263,   264,   712,     0,
     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
     713,   270,   271,   714,     0,     0,   272,     0,   273,   274,
       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
     279,   715,     0,     0,   281,     0,   716,   282,   283,     0,
       0,     0,     0,     0,   717,   285,     0,   286,     0,   287,
       0,   288,   289,     0,     0,   718,     0,     0,     0,     0,
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
     300,   301,   302,     0,   303,   304,   305,   719,   306,   307,
     308,   309,   720,   310,   311,     0,     0,     0,     0,   312,
     313,   314,   315,   721,   317,     0,     0,   722,   319,   723,
     320,     0,   321,   724,   725,   726,   727,   728,   326,   327,
     328,   329,   330,     0,   729,   331,   332,     0,     0,   333,
     334,   335,   336,   730,   731,   732,   337,   338,     0,   733,
     734,     0,   339,   340,   735,     0,   342,   343,   344,   345,
       0,   346,   347,     0,     0,     0,     0,     0,     0,     0,
       0,   348,   349,   350,     0,   736,   351,     0,   352,   353,
     354,   355,   737,   357,   358,   359,   360,   738,   739,   363,
     740,     0,   364,   365,   366,     0,   367,     0,   368,   369,
     370,   371,   372,     0,   741,   374,   375,     0,     0,   376,
       0,     0,     0,   377,   378,   379,   380,   381,     0,     0,
     382,   383,   384,   385,   386,     0,   387,   388,     0,   389,
     390,   391,   742,   743,   392,     0,   393,     0,   394,   395,
       0,   396,   397,     0,     0,   744,   398,   399,   400,   401,
     402,   745,   404,   405,   406,   407,     0,   746,   409,     0,
       0,     0,   410,   411,   412,   413,     0,     0,     0,   414,
       0,     0,     0,   415,     0,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,   425,     0,     0,     0,     0,
       0,     0,   426,   427,     0,   428,     0,     0,   429,     0,
       0,   430,   431,   432,   747,   748,   433,   434,     0,   435,
     436,   749,   438,   439,   440,   750,   751,   441,   442,   443,
     444,   752,   445,   446,     0,   447,     0,   448,   449,   450,
     451,     0,   753,   452,   453,     0,   754,   755,   756,   757,
       0,     0,     0,     0,     0,   458,   459,   460,     0,   758,
     759,   760,   462,   463,   464,   761,   465,   466,   762,   467,
     468,     0,   469,   470,     0,     0,   471,     0,     0,   472,
       0,   473,     0,   763,   475,   476,     0,     0,   764,   765,
     766,   767,   477,     0,     0,   478,   768,     0,   769,   479,
     480,   481,   482,   483,   770,     0,     0,     0,     0,     0,
       0,   485,   486,     0,   487,   488,   489,     0,     0,   771,
       0,     0,     0,     0,   772,   773,     0,     0,     0,     0,
     774,   775,     0,     0,   776,   777,     0,     0,   778,   779,
     139,     0,   669,   141,   142,   143,   144,     0,     0,   145,
       0,     0,     0,   146,     0,     0,   670,     0,   148,   149,
     150,   151,   152,   671,   154,     0,   155,     0,     0,   672,
     156,   673,   674,   675,   157,   676,     0,   158,   159,   160,
       0,   161,     0,   162,   163,     0,     0,   164,   677,   678,
     165,   166,     0,   167,   679,   680,   169,   170,     0,   171,
     172,   173,   174,   175,   681,   177,     0,   682,   179,   683,
     684,   685,   686,   687,   688,     0,   186,   187,   188,   189,
     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
     198,   689,   200,     0,   201,   690,   691,   202,     0,     0,
     203,   692,   693,     0,   204,   694,   695,     0,   205,   206,
     207,   696,   697,   698,     0,     0,     0,     0,   699,   210,
     700,     0,     0,   701,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,   234,   235,   702,     0,   236,
     237,   238,   703,   704,   239,   240,     0,   241,   242,   243,
     705,     0,   244,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   706,   251,   707,   253,     0,   254,
       0,   708,     0,   255,   256,   257,     0,   258,   709,   710,
       0,   259,   260,     0,     0,     0,   711,   262,   263,   264,
     712,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,   713,   270,   271,   714,     0,     0,   272,     0,
     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
       0,   278,   279,   715,     0,     0,   281,     0,   716,   282,
     283,     0,     0,     0,     0,     0,   717,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,   718,     0,     0,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,   719,
     306,   307,   308,   309,   720,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   721,   317,     0,     0,   722,
     319,   723,   320,     0,   321,   724,   725,   726,   727,   728,
     326,   327,   328,   329,   330,     0,   729,   331,   332,     0,
       0,   333,   334,   335,   336,   730,   731,   732,   337,   338,
       0,   733,   734,     0,   339,   340,   735,     0,   342,   343,
     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
       0,     0,     0,   348,   349,   350,     0,   736,   351,     0,
     352,   353,   354,   355,   737,   357,   358,   359,   360,   738,
     739,   363,   740,     0,   364,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   741,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
       0,   389,   390,   391,   742,   743,   392,     0,   393,     0,
     394,   395,     0,   396,   397,     0,     0,   744,   398,   399,
     400,   401,   402,   745,   404,   405,   406,   407,     0,   746,
     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,   431,   432,   747,   748,   433,   434,
       0,   435,   436,   749,   438,   439,   440,   750,   751,   441,
     442,   443,   444,   752,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,   753,   452,   453,     0,   754,   755,
     756,   757,     0,     0,     0,     0,     0,   458,   459,   460,
       0,   758,   759,   760,   462,   463,   464,   761,   465,   466,
     762,   467,   468,     0,   469,   470,     0,     0,   471,     0,
       0,   472,     0,   473,     0,   763,   475,   476,     0,     0,
     764,   765,   766,   767,   477,     0,     0,   478,   768,     0,
     769,   479,   480,   481,   482,   483,   770,     0,     0,     0,
       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
       0,   771,     0,     0,     0,     0,   772,   773,     0,     0,
       0,     0,   774,   775,     0,     0,   776,   777,     0,     0,
     778,   779,   139,     0,   669,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   670,     0,
     148,   149,   150,   151,   152,   671,   154,     0,   155,     0,
       0,   672,   156,   673,   674,   675,   157,   676,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
     677,   678,   165,   166,     0,   167,   679,   680,   169,   170,
       0,   171,   172,   173,   174,   175,   681,   177,     0,   682,
     179,   683,   684,   685,   686,   687,   688,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   689,   200,     0,   201,   690,   691,   202,
       0,     0,   203,   692,   693,     0,   204,   694,   695,     0,
     205,   206,   207,   696,   697,   698,     0,     0,     0,     0,
     699,   210,   700,     0,     0,   701,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,   702,
       0,   236,   237,   238,   703,   704,   239,   240,     0,   241,
     242,   243,   705,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   706,   251,   707,   253,
       0,   254,     0,   708,     0,   255,   256,   257,     0,   258,
     709,   710,     0,   259,   260,     0,     0,     0,   711,   262,
     263,   264,   712,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,   713,   270,   271,   714,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   715,     0,     0,   281,     0,
     716,   282,   283,     0,     0,     0,     0,     0,   717,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,   718,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,   719,   306,   307,   308,   309,   720,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   721,   317,     0,
       0,   722,   319,   723,   320,     0,   321,   724,   725,   726,
     727,   728,   326,   327,   328,   329,   330,     0,   729,   331,
     332,     0,     0,   333,   334,   335,   336,   730,   731,   732,
     337,   338,     0,   733,   734,     0,   339,   340,   735,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,   736,
     351,     0,   352,   353,   354,   355,   737,   357,   358,   359,
     360,   738,   739,   363,   740,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   741,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,   742,   743,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,   744,
     398,   399,   400,   401,   402,   745,   404,   405,   406,   407,
       0,   746,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,   747,   748,
     433,   434,     0,   435,   436,   749,   438,   439,   440,   750,
     751,   441,   442,   443,   444,   752,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   753,   452,   453,     0,
     754,   755,   756,   757,     0,     0,     0,     0,     0,   458,
     459,   460,     0,   758,   759,   760,   462,   463,   464,   761,
     465,   466,   762,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   763,   475,   476,
       0,     0,   764,   765,   766,   767,   477,     0,     0,   478,
     768,     0,   769,   479,   480,   481,   482,   483,   770,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,     0,   771,     0,     0,     0,     0,   772,   773,
       0,     0,     0,     0,   774,  1120,     0,     0,   776,   777,
       0,     0,   778,   779,   139,     0,   669,   141,   142,   143,
     144,  1706,     0,   145,     0,     0,     0,  1707,     0,     0,
     670,     0,   148,   149,   150,   151,   152,   671,   154,     0,
     155,     0,     0,   672,   156,   673,   674,   675,   157,   676,
       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
       0,   164,   677,   678,   165,   166,     0,   167,   679,   680,
     169,   170,     0,   171,   172,   173,   174,   175,   681,   177,
       0,   682,   179,   683,   684,   685,   686,   687,   688,     0,
     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
     195,     0,   196,   197,   198,   689,   200,     0,   201,   690,
     691,   202,     0,     0,   203,   692,   693,     0,   204,   694,
     695,     0,   205,   206,   207,   696,   697,   698,     0,     0,
       0,     0,   699,   210,   700,     0,     0,   701,   211,     0,
     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
     235,   702,     0,   236,   237,   238,   703,   704,   239,   240,
       0,   241,   242,   243,   705,     0,   244,     0,     0,     0,
     245,     0,   246,     0,   247,     0,   248,   249,   706,   251,
     707,   253,     0,   254,     0,   708,     0,   255,   256,   257,
       0,   258,   709,   710,     0,   259,   260,     0,     0,     0,
     711,   262,   263,   264,   712,     0,   265,   266,   267,     0,
     268,     0,   269,     0,     0,     0,   713,   270,   271,   714,
       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
       0,     0,   277,     0,     0,   278,   279,   715,     0,     0,
     281,     0,   716,   282,   283,     0,     0,     0,     0,     0,
     717,   285,     0,   286,     0,   287,     0,   288,   289,     0,
       0,   718,     0,     0,     0,     0,   290,   291,   292,   293,
     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
     303,   304,   305,   719,   306,   307,   308,   309,   720,   310,
     311,     0,     0,     0,     0,   312,   313,   314,   315,   721,
     317,     0,     0,   722,   319,   723,   320,     0,   321,   724,
     725,   726,   727,   728,   326,   327,   328,   329,   330,     0,
     729,   331,   332,     0,     0,   333,   334,   335,   336,   730,
       0,   732,   337,   338,     0,   733,   734,     0,   339,   340,
     735,     0,   342,   343,   344,   345,     0,   346,   347,     0,
       0,     0,     0,     0,     0,     0,     0,   348,   349,   350,
       0,   736,   351,     0,   352,   353,   354,   355,   737,   357,
     358,   359,   360,   738,   739,   363,   740,     0,   364,   365,
     366,     0,   367,     0,   368,   369,   370,   371,   372,     0,
     741,   374,   375,     0,     0,   376,     0,     0,     0,   377,
     378,   379,   380,   381,     0,     0,   382,   383,   384,   385,
     386,     0,   387,   388,     0,   389,   390,   391,   742,   743,
     392,     0,   393,     0,   394,   395,     0,   396,   397,     0,
       0,   744,   398,   399,   400,   401,   402,   745,   404,   405,
     406,   407,     0,   746,   409,     0,     0,     0,   410,   411,
     412,   413,     0,     0,     0,   414,     0,     0,     0,   415,
       0,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,   425,     0,     0,     0,     0,     0,     0,   426,   427,
       0,   428,     0,     0,   429,     0,     0,   430,   431,   432,
     747,   748,   433,   434,     0,   435,   436,   749,   438,   439,
     440,   750,   751,   441,   442,   443,   444,   752,   445,   446,
       0,   447,     0,   448,   449,   450,   451,     0,   753,   452,
     453,     0,   754,   755,   756,   757,     0,     0,     0,     0,
       0,   458,   459,   460,     0,   758,   759,   760,   462,   463,
     464,   761,   465,   466,   762,   467,   468,     0,   469,   470,
       0,     0,   471,     0,     0,   472,     0,   473,     0,   763,
     475,   476,     0,     0,   764,   765,   766,   767,   477,     0,
       0,   478,   768,     0,   769,   479,   480,   481,   482,   483,
     770,     0,     0,     0,     0,     0,     0,   485,   486,     0,
     487,   488,   489,     0,     0,   771,     0,     0,     0,     0,
     772,   773,     0,     0,     0,     0,   774,   775,     0,     0,
     776,   777,     0,     0,   778,   779,   139,     0,   669,   141,
     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
       0,     0,   670,     0,   148,   149,   150,   151,   152,   671,
     154,     0,   155,     0,     0,   672,   156,   673,   674,   675,
     157,   676,     0,   158,   159,   160,     0,   161,     0,   162,
     163,     0,     0,   164,   677,   678,   165,   166,     0,   167,
     679,   680,   169,   170,     0,   171,   172,   173,   174,   175,
     681,   177,     0,   682,   179,   683,   684,   685,   686,   687,
     688,     0,   186,   187,   188,   189,   190,   191,   192,   193,
       0,   194,   195,     0,   196,   197,   198,   689,   200,     0,
     201,   690,   691,   202,     0,     0,   203,   692,   693,     0,
     204,   694,   695,     0,   205,   206,   207,   696,   697,   698,
       0,     0,     0,     0,   699,   210,   700,     0,     0,   701,
     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
     233,   234,   235,   702,     0,   236,   237,   238,   703,   704,
     239,   240,     0,   241,   242,   243,   705,     0,   244,     0,
       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
     706,   251,   707,   253,     0,   254,     0,   708,     0,   255,
     256,   257,     0,   258,   709,   710,     0,   259,   260,     0,
       0,     0,   711,   262,   263,   264,   712,     0,   265,   266,
     267,     0,   268,     0,   269,     0,     0,     0,   713,   270,
     271,   714,     0,     0,   272,     0,   273,   274,     0,   275,
     276,     0,     0,     0,   277,     0,     0,   278,   279,   715,
       0,     0,   281,     0,   716,   282,   283,     0,     0,     0,
       0,     0,   717,   285,     0,   286,     0,   287,     0,   288,
     289,     0,     0,   718,     0,     0,     0,     0,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     302,     0,   303,   304,   305,   719,   306,   307,   308,   309,
     720,   310,   311,     0,     0,     0,     0,   312,   313,   314,
     315,   721,   317,     0,     0,   722,   319,   723,   320,     0,
     321,   724,   725,   726,   727,   728,   326,   327,   328,   329,
     330,     0,   729,   331,   332,     0,     0,   333,   334,   335,
     336,   730,   731,   732,   337,   338,     0,   733,   734,     0,
     339,   340,   735,     0,   342,   343,   344,   345,     0,   346,
     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
     349,   350,     0,   736,   351,     0,   352,   353,   354,   355,
     737,   357,   358,   359,   360,   738,   739,   363,   740,     0,
     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
     372,     0,   741,   374,   375,     0,     0,   376,     0,     0,
       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
     742,   743,   392,     0,   393,     0,   394,   395,     0,   396,
     397,     0,     0,   744,   398,   399,   400,   401,   402,   745,
     404,   405,   406,   407,     0,   746,   409,     0,     0,     0,
     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
     431,   432,   747,   748,   433,   434,     0,   435,   436,   749,
     438,   439,   440,   750,   751,   441,   442,   443,   444,   752,
     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
     753,   452,   453,     0,   754,   755,   756,   757,     0,     0,
       0,     0,     0,   458,   459,   460,     0,   758,   759,   760,
     462,   463,   464,   761,   465,   466,   762,   467,   468,     0,
     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
       0,  1781,   475,   476,     0,     0,   764,   765,   766,   767,
     477,     0,     0,   478,   768,     0,   769,   479,   480,   481,
     482,   483,   770,     0,     0,     0,     0,     0,     0,   485,
     486,     0,   487,   488,   489,     0,     0,   771,     0,     0,
       0,     0,   772,   773,     0,     0,     0,     0,   774,   775,
       0,     0,   776,   777,     0,     0,   778,   779,   139,     0,
     669,   141,   142,   143,   144,     0,     0,   145,     0,     0,
       0,   146,     0,     0,   670,     0,   148,   149,   150,   151,
     152,   671,   154,     0,   155,     0,     0,   672,   156,   673,
     674,   675,   157,   676,     0,   158,   159,   160,     0,   161,
       0,   162,   163,     0,     0,   164,   677,   678,   165,   166,
       0,   167,   679,   680,   169,   170,     0,   171,   172,   173,
     174,   175,   681,   177,     0,   682,   179,   683,   684,   685,
     686,   687,   688,     0,   186,   187,   188,   189,   190,   191,
     192,   193,     0,   194,   195,     0,   196,   197,   198,   689,
     200,     0,   201,   690,   691,   202,     0,     0,   203,   692,
     693,     0,   204,   694,   695,     0,   205,   206,   207,   696,
     697,   698,     0,     0,     0,     0,   699,   210,   700,     0,
       0,   701,   211,     0,   212,     0,     0,     0,   213,     0,
     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
     231,   232,   233,   234,   235,   702,     0,   236,   237,   238,
     703,   704,   239,   240,     0,   241,   242,   243,   705,     0,
     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
     248,   249,   706,   251,   707,   253,     0,   254,     0,   708,
       0,   255,   256,   257,     0,   258,   709,   710,     0,   259,
     260,     0,     0,     0,   711,   262,   263,   264,   712,     0,
     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
     713,   270,   271,  2604,     0,     0,   272,     0,   273,   274,
       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
     279,   715,     0,     0,   281,     0,   716,   282,   283,     0,
       0,     0,     0,     0,   717,   285,     0,   286,     0,   287,
       0,   288,   289,     0,     0,   718,     0,     0,     0,     0,
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
     300,   301,   302,     0,   303,   304,   305,   719,   306,   307,
     308,   309,   720,   310,   311,     0,     0,     0,     0,   312,
     313,   314,   315,   721,   317,     0,     0,   722,   319,   723,
     320,     0,   321,   724,   725,   726,   727,   728,   326,   327,
     328,   329,   330,     0,   729,   331,   332,     0,     0,   333,
     334,   335,   336,   730,   731,   732,   337,   338,     0,   733,
     734,     0,   339,   340,   735,     0,   342,   343,   344,   345,
       0,   346,   347,     0,     0,     0,     0,     0,     0,     0,
       0,   348,   349,   350,     0,   736,   351,     0,   352,   353,
     354,   355,   737,   357,   358,   359,   360,   738,   739,   363,
     740,     0,   364,   365,   366,     0,   367,     0,   368,   369,
     370,   371,   372,     0,   741,   374,   375,     0,     0,   376,
       0,     0,     0,   377,   378,   379,   380,   381,     0,     0,
     382,   383,   384,   385,   386,     0,   387,   388,     0,   389,
     390,   391,   742,   743,   392,     0,   393,     0,   394,   395,
       0,   396,   397,     0,     0,   744,   398,   399,   400,   401,
     402,   745,   404,   405,   406,   407,     0,   746,   409,     0,
       0,     0,   410,   411,   412,   413,     0,     0,     0,   414,
       0,     0,     0,   415,     0,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,   425,     0,     0,     0,     0,
       0,     0,   426,   427,     0,   428,     0,     0,   429,     0,
       0,   430,   431,   432,   747,   748,   433,   434,     0,   435,
     436,   749,   438,   439,   440,   750,   751,   441,   442,   443,
     444,   752,   445,   446,     0,   447,     0,   448,   449,   450,
     451,     0,   753,   452,   453,     0,   754,   755,   756,   757,
       0,     0,     0,     0,     0,   458,   459,   460,     0,   758,
     759,   760,   462,   463,   464,   761,   465,   466,   762,   467,
     468,     0,   469,   470,     0,     0,   471,     0,     0,   472,
       0,   473,     0,   763,   475,   476,     0,     0,   764,   765,
     766,   767,   477,     0,     0,   478,   768,     0,   769,   479,
     480,   481,   482,   483,   770,     0,     0,     0,     0,     0,
       0,   485,   486,     0,   487,   488,   489,     0,     0,   771,
       0,     0,     0,     0,   772,   773,     0,     0,     0,     0,
     774,   775,     0,     0,   776,   777,     0,     0,   778,   779,
     139,     0,   669,   141,   142,   143,   144,     0,     0,   145,
       0,     0,     0,   146,     0,     0,   670,     0,   148,   149,
     150,   151,   152,   671,   154,     0,   155,     0,     0,   672,
     156,   673,   674,   675,   157,   676,     0,   158,   159,   160,
       0,   161,     0,   162,   163,     0,     0,   164,   677,   678,
     165,   166,     0,   167,   679,   680,   169,   170,     0,   171,
     172,   173,   174,   175,   681,   177,     0,   682,   179,   683,
     684,   685,   686,   687,   688,     0,   186,   187,   188,   189,
     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
     198,   689,   200,     0,   201,   690,   691,   202,     0,     0,
     203,   692,   693,     0,   204,   694,   695,     0,   205,   206,
     207,   696,   697,   698,     0,     0,     0,     0,   699,   210,
     700,     0,     0,   701,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,   234,   235,   702,     0,   236,
     237,   238,   703,   704,   239,   240,     0,   241,   242,   243,
     705,     0,   244,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   706,   251,   707,   253,     0,   254,
       0,   708,     0,   255,   256,   257,     0,   258,   709,   710,
       0,   259,   260,     0,     0,     0,   711,   262,   263,   264,
     712,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,   713,   270,   271,  2658,     0,     0,   272,     0,
     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
       0,   278,   279,   715,     0,     0,   281,     0,   716,   282,
     283,     0,     0,     0,     0,     0,   717,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,   718,     0,     0,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,   719,
     306,   307,   308,   309,   720,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   721,   317,     0,     0,   722,
     319,   723,   320,     0,   321,   724,   725,   726,   727,   728,
     326,   327,   328,   329,   330,     0,   729,   331,   332,     0,
       0,   333,   334,   335,   336,   730,   731,   732,   337,   338,
       0,   733,   734,     0,   339,   340,   735,     0,   342,   343,
     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
       0,     0,     0,   348,   349,   350,     0,   736,   351,     0,
     352,   353,   354,   355,   737,   357,   358,   359,   360,   738,
     739,   363,   740,     0,   364,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   741,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
       0,   389,   390,   391,   742,   743,   392,     0,   393,     0,
     394,   395,     0,   396,   397,     0,     0,   744,   398,   399,
     400,   401,   402,   745,   404,   405,   406,   407,     0,   746,
     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,   431,   432,   747,   748,   433,   434,
       0,   435,   436,   749,   438,   439,   440,   750,   751,   441,
     442,   443,   444,   752,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,   753,   452,   453,     0,   754,   755,
     756,   757,     0,     0,     0,     0,     0,   458,   459,   460,
       0,   758,   759,   760,   462,   463,   464,   761,   465,   466,
     762,   467,   468,     0,   469,   470,     0,     0,   471,     0,
       0,   472,     0,   473,     0,   763,   475,   476,     0,     0,
     764,   765,   766,   767,   477,     0,     0,   478,   768,     0,
     769,   479,   480,   481,   482,   483,   770,     0,     0,     0,
       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
       0,   771,     0,     0,     0,     0,   772,   773,     0,     0,
       0,     0,   774,   775,     0,     0,   776,   777,     0,     0,
     778,   779,   139,     0,   669,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   670,     0,
     148,   149,   150,   151,   152,   671,   154,     0,   155,     0,
       0,   672,   156,   673,   674,   675,   157,   676,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
     677,   678,   165,   166,     0,   167,   679,   680,   169,   170,
       0,   171,   172,   173,   174,   175,   681,   177,     0,   682,
     179,   683,   684,   685,   686,   687,   688,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   689,   200,     0,   201,   690,   691,   202,
       0,     0,   203,   692,   693,     0,   204,   694,   695,     0,
     205,   206,   207,   696,   697,   698,     0,     0,     0,     0,
     699,   210,   700,     0,     0,  3417,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,   702,
       0,   236,   237,   238,   703,   704,   239,   240,     0,   241,
     242,   243,   705,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   706,   251,   707,   253,
       0,   254,     0,   708,     0,   255,   256,   257,     0,   258,
     709,   710,     0,   259,   260,     0,     0,     0,   711,   262,
     263,   264,   712,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,   713,   270,   271,   714,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   715,     0,     0,   281,     0,
     716,   282,   283,     0,     0,     0,     0,     0,   717,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,   718,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,   719,   306,   307,   308,   309,   720,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   721,   317,     0,
       0,   722,   319,   723,   320,     0,   321,   724,   725,   726,
     727,   728,   326,   327,   328,   329,   330,     0,   729,   331,
     332,     0,     0,   333,   334,   335,   336,   730,   731,   732,
     337,   338,     0,   733,   734,     0,   339,   340,   735,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,   736,
     351,     0,   352,   353,   354,   355,   737,   357,   358,   359,
     360,   738,   739,   363,   740,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   741,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,   742,   743,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,   744,
     398,   399,   400,   401,   402,   745,   404,   405,   406,   407,
       0,   746,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,   747,   748,
     433,   434,     0,   435,   436,   749,   438,   439,   440,   750,
     751,   441,   442,   443,   444,   752,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   753,   452,   453,     0,
     754,   755,   756,   757,     0,     0,     0,     0,     0,   458,
     459,   460,     0,   758,   759,   760,   462,   463,   464,   761,
     465,   466,   762,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   763,   475,   476,
       0,     0,   764,   765,   766,   767,   477,     0,     0,   478,
     768,     0,   769,   479,   480,   481,   482,   483,   770,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,     0,   771,     0,     0,     0,     0,   772,   773,
       0,     0,     0,     0,   774,   775,     0,     0,   776,   777,
       0,     0,   778,   779,   139,     0,   669,   141,   142,   143,
     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
     670,     0,   148,   149,   150,   151,   152,   671,   154,     0,
     155,     0,     0,   672,   156,   673,   674,   675,   157,   676,
       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
       0,   164,   677,   678,   165,   166,     0,   167,   679,   680,
     169,   170,     0,   171,   172,   173,   174,   175,   681,   177,
       0,   682,   179,   683,   684,   685,   686,   687,   688,     0,
     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
     195,     0,   196,   197,   198,   689,   200,     0,   201,   690,
     691,   202,     0,     0,   203,   692,   693,     0,   204,   694,
     695,     0,   205,   206,   207,   696,   697,   698,     0,     0,
       0,     0,   699,   210,   700,     0,     0,   701,   211,     0,
     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
     235,   702,     0,   236,   237,   238,   703,   704,   239,   240,
       0,   241,   242,   243,   705,     0,   244,     0,     0,     0,
     245,     0,   246,     0,   247,     0,   248,   249,   706,   251,
     707,   253,     0,   254,     0,   708,     0,   255,   256,   257,
       0,   258,   709,   710,     0,   259,   260,     0,     0,     0,
     711,   262,   263,   264,   712,     0,   265,   266,   267,     0,
     268,     0,   269,     0,     0,     0,   713,   270,   271,   714,
       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
       0,     0,   277,     0,     0,   278,   279,   715,     0,     0,
     281,     0,   716,   282,   283,     0,     0,     0,     0,     0,
     717,   285,     0,   286,     0,   287,     0,   288,   289,     0,
       0,   718,     0,     0,     0,     0,   290,   291,   292,   293,
     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
     303,   304,   305,   719,   306,   307,   308,   309,   720,   310,
     311,  4307,     0,     0,     0,   312,   313,   314,   315,   721,
     317,     0,     0,   722,   319,   723,   320,     0,   321,   724,
     725,   726,   727,   728,   326,   327,   328,   329,   330,     0,
     729,   331,   332,     0,     0,   333,   334,   335,   336,   730,
       0,   732,   337,   338,     0,   733,   734,     0,   339,   340,
     735,     0,   342,   343,   344,   345,     0,   346,   347,     0,
       0,     0,     0,     0,     0,     0,     0,   348,   349,   350,
       0,   736,   351,     0,   352,   353,   354,   355,   737,   357,
     358,   359,   360,   738,   739,   363,   740,     0,   364,   365,
     366,     0,   367,     0,   368,   369,   370,   371,   372,     0,
     741,   374,   375,     0,     0,   376,     0,     0,     0,   377,
     378,   379,   380,   381,     0,     0,   382,   383,   384,   385,
     386,     0,   387,   388,     0,   389,   390,   391,   742,   743,
     392,     0,   393,     0,   394,   395,     0,   396,   397,     0,
       0,   744,   398,   399,   400,   401,   402,   745,   404,   405,
     406,   407,     0,   746,   409,     0,     0,     0,   410,   411,
     412,   413,     0,     0,     0,   414,     0,     0,     0,   415,
       0,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,   425,     0,     0,     0,     0,     0,     0,   426,   427,
       0,   428,     0,     0,   429,     0,     0,   430,   431,   432,
     747,   748,   433,   434,     0,   435,   436,   749,   438,   439,
     440,   750,   751,   441,   442,   443,   444,   752,   445,   446,
       0,   447,     0,   448,   449,   450,   451,     0,   753,   452,
     453,     0,   754,   755,   756,   757,     0,     0,     0,     0,
       0,   458,   459,   460,     0,   758,   759,   760,   462,   463,
     464,   761,   465,   466,   762,   467,   468,     0,   469,   470,
       0,     0,   471,     0,     0,   472,     0,   473,     0,   763,
     475,   476,     0,     0,   764,   765,   766,   767,   477,     0,
       0,   478,   768,     0,   769,   479,   480,   481,   482,   483,
     770,     0,     0,     0,     0,     0,     0,   485,   486,     0,
     487,   488,   489,     0,     0,   771,     0,     0,     0,     0,
     772,   773,     0,     0,     0,     0,   774,   775,     0,     0,
     776,   777,     0,     0,   778,   779,   139,     0,   669,   141,
     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
       0,     0,   670,     0,   148,   149,   150,   151,   152,   671,
     154,     0,   155,     0,     0,   672,   156,   673,   674,   675,
     157,   676,     0,   158,   159,   160,     0,   161,     0,   162,
     163,     0,     0,   164,   677,   678,   165,   166,     0,   167,
     679,   680,   169,   170,     0,   171,   172,   173,   174,   175,
     681,   177,     0,   682,   179,   683,   684,   685,   686,   687,
     688,     0,   186,   187,   188,   189,   190,   191,   192,   193,
       0,   194,   195,     0,   196,   197,   198,   689,   200,     0,
     201,   690,   691,   202,     0,     0,   203,   692,   693,     0,
     204,   694,   695,     0,   205,   206,   207,   696,   697,   698,
       0,     0,     0,     0,   699,   210,   700,     0,     0,   701,
     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
     233,   234,   235,   702,     0,   236,   237,   238,   703,   704,
     239,   240,     0,   241,   242,   243,   705,     0,   244,     0,
       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
     706,   251,   707,   253,     0,   254,     0,   708,     0,   255,
     256,   257,     0,   258,   709,   710,     0,   259,   260,     0,
       0,     0,   711,   262,   263,   264,   712,     0,   265,   266,
     267,     0,   268,     0,   269,     0,     0,     0,   713,   270,
     271,   714,     0,     0,   272,     0,   273,   274,     0,   275,
     276,     0,     0,     0,   277,     0,     0,   278,   279,   715,
       0,     0,   281,     0,   716,   282,   283,     0,     0,     0,
       0,     0,   717,   285,     0,   286,     0,   287,     0,   288,
     289,     0,     0,   718,     0,     0,     0,     0,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     302,     0,   303,   304,   305,   719,   306,   307,   308,   309,
     720,   310,   311,     0,     0,     0,     0,   312,   313,   314,
     315,   721,   317,     0,     0,   722,   319,   723,   320,     0,
     321,   724,   725,   726,   727,   728,   326,   327,   328,   329,
     330,     0,   729,   331,   332,     0,     0,   333,   334,   335,
     336,   730,     0,   732,   337,   338,     0,   733,   734,     0,
     339,   340,   735,     0,   342,   343,   344,   345,     0,   346,
     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
     349,   350,     0,   736,   351,     0,   352,   353,   354,   355,
     737,   357,   358,   359,   360,   738,   739,   363,   740,     0,
     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
     372,     0,   741,   374,   375,     0,     0,   376,     0,     0,
       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
     742,   743,   392,     0,   393,     0,   394,   395,     0,   396,
     397,     0,     0,   744,   398,   399,   400,   401,   402,   745,
     404,   405,   406,   407,     0,   746,   409,     0,     0,     0,
     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
     431,   432,   747,   748,   433,   434,     0,   435,   436,   749,
     438,   439,   440,   750,   751,   441,   442,   443,   444,   752,
     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
     753,   452,   453,     0,   754,   755,   756,   757,     0,     0,
       0,     0,     0,   458,   459,   460,     0,   758,   759,   760,
     462,   463,   464,   761,   465,   466,   762,   467,   468,     0,
     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
       0,   763,   475,   476,     0,     0,   764,   765,   766,   767,
     477,     0,     0,   478,   768,     0,   769,   479,   480,   481,
     482,   483,   770,     0,     0,     0,     0,     0,     0,   485,
     486,     0,   487,   488,   489,     0,     0,   771,     0,     0,
       0,     0,   772,   773,     0,     0,     0,     0,   774,   775,
       0,     0,   776,   777,     0,     0,   778,   779,   139,     0,
     669,   141,   142,   143,   144,     0,     0,   145,     0,     0,
       0,   146,     0,     0,   670,     0,   148,   149,   150,   151,
     152,   671,   154,     0,   155,     0,     0,   672,   156,   673,
     674,   675,   157,   676,     0,   158,   159,   160,     0,   161,
       0,   162,   163,     0,     0,   164,   677,   678,   165,   166,
       0,   167,   679,   680,   169,   170,     0,   171,   172,   173,
     174,   175,   681,   177,     0,   682,   179,   683,   684,   685,
     686,   687,   688,     0,   186,   187,   188,   189,   190,   191,
     192,   193,     0,   194,   195,     0,   196,   197,   198,   689,
     200,     0,   201,   690,   691,   202,     0,     0,   203,   692,
     693,     0,   204,   694,   695,     0,   205,   206,   207,   696,
     697,   698,     0,     0,     0,     0,   699,   210,   700,     0,
       0,   701,   211,     0,   212,     0,     0,     0,   213,     0,
     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
     231,   232,   233,   234,   235,   702,     0,   236,   237,   238,
     703,   704,   239,   240,     0,   241,   242,   243,   705,     0,
     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
     248,   249,   706,   251,   707,   253,     0,   254,     0,   708,
       0,   255,   256,   257,     0,   258,   709,   710,     0,   259,
     260,     0,     0,     0,   711,   262,   263,   264,   712,     0,
     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
     713,   270,   271,  1721,     0,     0,   272,     0,   273,   274,
       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
     279,   715,     0,     0,   281,     0,   716,   282,   283,     0,
       0,     0,     0,     0,   717,   285,     0,   286,     0,   287,
       0,   288,   289,     0,     0,   718,     0,     0,     0,     0,
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
     300,   301,   302,     0,   303,   304,   305,   719,   306,   307,
     308,   309,   720,   310,   311,     0,     0,     0,     0,   312,
     313,   314,   315,   721,   317,     0,     0,   722,   319,   723,
     320,     0,   321,   724,   725,   726,   727,   728,   326,   327,
     328,   329,   330,     0,   729,   331,   332,     0,     0,   333,
     334,   335,   336,   730,     0,   732,   337,   338,     0,   733,
     734,     0,   339,   340,   735,     0,   342,   343,   344,   345,
       0,   346,   347,     0,     0,     0,     0,     0,     0,     0,
       0,   348,   349,   350,     0,   736,   351,     0,   352,   353,
     354,   355,   737,   357,   358,   359,   360,   738,   739,   363,
     740,     0,   364,   365,   366,     0,   367,     0,   368,   369,
     370,   371,   372,     0,   741,   374,   375,     0,     0,   376,
       0,     0,     0,   377,   378,   379,   380,   381,     0,     0,
     382,   383,   384,   385,   386,     0,   387,   388,     0,   389,
     390,   391,   742,   743,   392,     0,   393,     0,   394,   395,
       0,   396,   397,     0,     0,   744,   398,   399,   400,   401,
     402,   745,   404,   405,   406,   407,     0,   746,   409,     0,
       0,     0,   410,   411,   412,   413,     0,     0,     0,   414,
       0,     0,     0,   415,     0,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,   425,     0,     0,     0,     0,
       0,     0,   426,   427,     0,   428,     0,     0,   429,     0,
       0,   430,   431,   432,   747,   748,   433,   434,     0,   435,
     436,   749,   438,   439,   440,   750,   751,   441,   442,   443,
     444,   752,   445,   446,     0,   447,     0,   448,   449,   450,
     451,     0,   753,   452,   453,     0,   754,   755,   756,   757,
       0,     0,     0,     0,     0,   458,   459,   460,     0,   758,
     759,   760,   462,   463,   464,   761,   465,   466,   762,   467,
     468,     0,   469,   470,     0,     0,   471,     0,     0,   472,
       0,   473,     0,   763,   475,   476,     0,     0,   764,   765,
     766,   767,   477,     0,     0,   478,   768,     0,   769,   479,
     480,   481,   482,   483,   770,     0,     0,     0,     0,     0,
       0,   485,   486,     0,   487,   488,   489,     0,     0,   771,
       0,     0,     0,     0,   772,   773,     0,     0,     0,     0,
     774,   775,     0,     0,   776,   777,     0,     0,   778,   779,
     139,     0,   669,   141,   142,   143,   144,     0,     0,   145,
       0,     0,     0,   146,     0,     0,   670,     0,   148,   149,
     150,   151,   152,   671,   154,     0,   155,     0,     0,   672,
     156,   673,   674,   675,   157,   676,     0,   158,   159,   160,
       0,   161,     0,   162,   163,     0,     0,   164,   677,   678,
     165,   166,     0,   167,   679,   680,   169,   170,     0,   171,
     172,   173,   174,   175,   681,   177,     0,   682,   179,   683,
     684,   685,   686,   687,   688,     0,   186,   187,   188,   189,
     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
     198,   689,   200,     0,   201,   690,   691,   202,     0,     0,
     203,   692,   693,     0,   204,   694,   695,     0,   205,   206,
     207,   696,   697,   698,     0,     0,     0,     0,   699,   210,
     700,     0,     0,   701,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,   234,   235,   702,     0,   236,
     237,   238,   703,   704,   239,   240,     0,   241,   242,   243,
     705,     0,   244,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   706,   251,   707,   253,     0,   254,
       0,   708,     0,   255,   256,   257,     0,   258,   709,   710,
       0,   259,   260,     0,     0,     0,   711,   262,   263,   264,
     712,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,   713,   270,   271,  1723,     0,     0,   272,     0,
     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
       0,   278,   279,   715,     0,     0,   281,     0,   716,   282,
     283,     0,     0,     0,     0,     0,   717,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,   718,     0,     0,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,   719,
     306,   307,   308,   309,   720,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   721,   317,     0,     0,   722,
     319,   723,   320,     0,   321,   724,   725,   726,   727,   728,
     326,   327,   328,   329,   330,     0,   729,   331,   332,     0,
       0,   333,   334,   335,   336,   730,     0,   732,   337,   338,
       0,   733,   734,     0,   339,   340,   735,     0,   342,   343,
     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
       0,     0,     0,   348,   349,   350,     0,   736,   351,     0,
     352,   353,   354,   355,   737,   357,   358,   359,   360,   738,
     739,   363,   740,     0,   364,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   741,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
       0,   389,   390,   391,   742,   743,   392,     0,   393,     0,
     394,   395,     0,   396,   397,     0,     0,   744,   398,   399,
     400,   401,   402,   745,   404,   405,   406,   407,     0,   746,
     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,   431,   432,   747,   748,   433,   434,
       0,   435,   436,   749,   438,   439,   440,   750,   751,   441,
     442,   443,   444,   752,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,   753,   452,   453,     0,   754,   755,
     756,   757,     0,     0,     0,     0,     0,   458,   459,   460,
       0,   758,   759,   760,   462,   463,   464,   761,   465,   466,
     762,   467,   468,     0,   469,   470,     0,     0,   471,     0,
       0,   472,     0,   473,     0,   763,   475,   476,     0,     0,
     764,   765,   766,   767,   477,     0,     0,   478,   768,     0,
     769,   479,   480,   481,   482,   483,   770,     0,     0,     0,
       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
       0,   771,     0,     0,     0,     0,   772,   773,     0,     0,
       0,     0,   774,   775,     0,     0,   776,   777,     0,     0,
     778,   779,   139,     0,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,   673,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,  2331,     0,     0,     0,     0,
     209,   210,   700,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,   704,   239,   240,     0,   241,
     242,   243,   705,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
     709,   710,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,   718,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,   729,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,   733,   734,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   753,   452,   453,     0,
    2332,   455,   456,  2333,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,   759,   461,   462,   463,   464,   761,
     465,   466,   762,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,     0,   490,     0,     0,     0,     0,   139,     0,
     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
       0,   146,   778,   779,   147,     0,   148,   149,   150,   151,
     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
     192,   193,     0,   194,   195,  2446,   196,   197,   198,   199,
     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
     231,   232,   233,   234,   235,     0,     0,   236,   237,   238,
       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
     244,     0,     0,     0,   245,     0,   246,   504,   247,     0,
     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
     265,   266,   267,  2030,   268,     0,   269,     0,     0,     0,
       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
       0,   275,   276,     0,     0,     0,   277,  2031,     0,   278,
     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
    3003,     0,     0,     0,   284,   285,     0,   286,     0,   287,
       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
     328,   329,   330,     0,     0,   331,   332,     0,     0,   333,
     334,   335,   336,     0,     0,     0,   337,   338,     0,     0,
       0,     0,   339,   340,   341,     0,   342,   343,   344,   345,
       0,   346,   347,     0,     0,     0,     0,     0,     0,     0,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,  3004,   356,   357,   358,   359,   360,   361,   362,   363,
       0,     0,   364,   365,   366,     0,   367,     0,   368,   369,
     370,   371,   372,     0,   373,   374,   375,     0,     0,   376,
       0,     0,     0,   377,   378,   379,   380,   381,     0,     0,
     382,   383,   384,   385,   386,     0,   387,   388,     0,   389,
     390,   391,     0,     0,   392,     0,   393,     0,   394,   395,
       0,   396,   397,     0,     0,     0,   398,   399,   400,   401,
     402,   403,   404,   405,   406,   407,     0,   408,   409,  -439,
       0,     0,   410,   411,   412,   413,     0,     0,     0,   414,
       0,     0,     0,   415,     0,   416,   417,   418,   419,     0,
     420,   421,   422,   423,   424,   425,   507,     0,     0,     0,
       0,     0,   426,   427,     0,   428,     0,     0,   429,     0,
       0,   430,   431,   432,     0,     0,   433,   434,     0,   435,
     436,   437,   438,   439,   440,     0,     0,   441,   442,   443,
     444,     0,   445,   446,     0,   447,     0,   448,   449,   450,
     451,     0,     0,   452,   453,     0,   454,   455,   456,   457,
       0,     0,     0,     0,     0,   458,   459,   460,     0,     0,
       0,   461,   462,   463,   464,     0,   465,   466,     0,   467,
     468,     0,   469,   470,     0,     0,   471,     0,     0,   472,
       0,   473,     0,   474,   475,   476,     0,     0,     0,     0,
       0,     0,   477,     0,     0,   478,     0,     0,     0,   479,
     480,   481,   482,   483,   484,     0,     0,     0,     0,     0,
       0,   485,   486,     0,   487,   488,   489,     0,     0,   490,
       0,     0,   139,     0,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,  2513,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,  2446,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,   504,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,  2030,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,  2031,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
     507,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,     0,   490,     0,     0,   139,     0,   140,   141,
     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
       0,     0,   147,  2513,   148,   149,   150,   151,   152,   153,
     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
     239,   240,     0,   241,   242,   243,     0,     0,   244,     0,
       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
     256,   257,     0,   258,     0,     0,     0,   259,   260,     0,
       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
     271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
       0,     0,   281,     0,     0,   282,   283,     0,     0,     0,
       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
     289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
     330,     0,     0,   331,   332,     0,     0,   333,   334,   335,
     336,     0,     0,     0,   337,   338,     0,     0,     0,     0,
     339,   340,   341,     0,   342,   343,   344,   345,     0,   346,
     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,     0,     0,
     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
     372,     0,   373,   374,   375,     0,     0,   376,     0,     0,
       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
       0,     0,   392,     0,   393,     0,   394,   395,     0,   396,
     397,     0,     0,     0,   398,   399,   400,   401,   402,   403,
     404,   405,   406,   407,     0,   408,   409,  2322,     0,     0,
     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
     431,   432,     0,     0,   433,   434,     0,   435,   436,   437,
     438,   439,   440,     0,     0,   441,   442,   443,   444,     0,
     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
       0,   452,   453,     0,   454,   455,   456,   457,     0,     0,
       0,     0,     0,   458,   459,   460,     0,     0,     0,   461,
     462,   463,   464,     0,   465,   466,     0,   467,   468,     0,
     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
       0,   474,   475,   476,     0,     0,     0,     0,     0,     0,
     477,     0,     0,   478,     0,     0,     0,   479,   480,   481,
     482,   483,   484,     0,     0,     0,     0,     0,     0,   485,
     486,     0,   487,   488,   489,     0,     0,   490,     0,     0,
     139,     0,   140,   141,   142,   143,   144,     0,     0,   145,
    2752,     0,     0,   146,     0,     0,   147,   779,   148,   149,
     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
     237,   238,     0,     0,   239,   240,     0,   241,   242,   243,
       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
     326,   327,   328,   329,   330,     0,     0,   331,   332,     0,
       0,   333,   334,   335,   336,     0,     0,     0,   337,   338,
       0,     0,     0,     0,   339,   340,   341,     0,   342,   343,
     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
       0,     0,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,     0,     0,   364,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   373,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
       0,   389,   390,   391,     0,     0,   392,     0,   393,     0,
     394,   395,     0,   396,   397,     0,     0,     0,   398,   399,
     400,   401,   402,   403,   404,   405,   406,   407,     0,   408,
     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,   431,   432,     0,     0,   433,   434,
       0,   435,   436,   437,   438,   439,   440,     0,     0,   441,
     442,   443,   444,     0,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,     0,   452,   453,     0,   454,   455,
     456,   457,     0,     0,     0,     0,     0,   458,   459,   460,
       0,     0,     0,   461,   462,   463,   464,     0,   465,   466,
       0,   467,   468,     0,   469,   470,     0,     0,   471,     0,
       0,   472,     0,   473,     0,   474,   475,   476,     0,     0,
       0,     0,     0,     0,   477,     0,     0,   478,     0,     0,
       0,   479,   480,   481,   482,   483,   484,     0,     0,     0,
       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
       0,   490,     0,     0,     0,     0,   139,     0,   140,   141,
     142,   143,   144,     0,  4434,   145,     0,     0,     0,   146,
    4435,   779,   147,     0,   148,   149,   150,   151,   152,   153,
     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
     239,   240,     0,   241,   242,   243,     0,     0,   244,     0,
       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
     256,   257,     0,   258,     0,     0,     0,   259,   260,     0,
       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
     271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
       0,     0,   281,     0,     0,   282,   283,     0,     0,     0,
       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
     289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
     330,     0,     0,   331,   332,     0,     0,   333,   334,   335,
     336,     0,     0,     0,   337,   338,     0,     0,     0,     0,
     339,   340,   341,     0,   342,   343,   344,   345,     0,   346,
     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,     0,     0,
     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
     372,     0,   373,   374,   375,     0,     0,   376,     0,     0,
       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
       0,     0,   392,     0,   393,     0,   394,   395,     0,   396,
     397,     0,     0,     0,   398,   399,   400,   401,   402,   403,
     404,   405,   406,   407,     0,   408,   409,     0,     0,     0,
     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
     431,   432,     0,     0,   433,   434,     0,   435,   436,   437,
     438,   439,   440,     0,     0,   441,   442,   443,   444,     0,
     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
       0,   452,   453,     0,   454,   455,   456,   457,     0,     0,
       0,     0,     0,   458,   459,   460,     0,     0,     0,   461,
     462,   463,   464,     0,   465,   466,     0,   467,   468,     0,
     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
       0,   474,   475,   476,     0,     0,     0,     0,     0,     0,
     477,     0,     0,   478,     0,     0,     0,   479,   480,   481,
     482,   483,   484,     0,     0,     0,     0,     0,     0,   485,
     486,     0,   487,   488,   489,     0,     0,   490,     0,     0,
       0,     0,   139,     0,   140,   141,   142,   143,   144,  1125,
       0,   145,     0,     0,     0,   146,     0,   779,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,  1328,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,     0,   490,     0,     0,   139,     0,   140,   141,
     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
       0,     0,   147,   538,   148,   149,   150,   151,   152,   153,
     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
     239,   240,     0,   241,   242,   243,     0,     0,   244,     0,
       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
     256,   257,     0,   258,     0,     0,     0,   259,   260,     0,
       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
     271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
       0,     0,   281,     0,     0,   282,   283,     0,     0,     0,
       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
     289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
     330,     0,     0,   331,   332,     0,     0,   333,   334,   335,
     336,     0,     0,     0,   337,   338,     0,     0,     0,     0,
     339,   340,   341,     0,   342,   343,   344,   345,     0,   346,
     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,   363,     0,     0,
     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
     372,     0,   373,   374,   375,     0,     0,   376,     0,     0,
       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
       0,     0,   392,     0,   393,     0,   394,   395,     0,   396,
     397,     0,     0,     0,   398,   399,   400,   401,   402,   403,
     404,   405,   406,   407,     0,   408,   409,     0,     0,     0,
     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
     431,   432,     0,     0,   433,   434,     0,   435,   436,   437,
     438,   439,   440,     0,     0,   441,   442,   443,   444,     0,
     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
       0,   452,   453,     0,   454,   455,   456,   457,     0,     0,
       0,     0,     0,   458,   459,   460,     0,     0,     0,   461,
     462,   463,   464,     0,   465,   466,     0,   467,   468,     0,
     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
       0,   474,   475,   476,     0,     0,     0,     0,     0,     0,
     477,     0,     0,   478,     0,     0,     0,   479,   480,   481,
     482,   483,   484,     0,     0,     0,     0,     0,     0,   485,
     486,     0,   487,   488,   489,     0,     0,   490,     0,     0,
       0,     0,     0,   139,  2270,   140,   141,   142,   143,   144,
       0,     0,   145,     0,     0,     0,   146,   538,     0,   147,
       0,   148,   149,   150,   151,   152,   153,   154,     0,   155,
       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
       0,   209,   210,     0,     0,     0,     0,   211,     0,   212,
       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
     241,   242,   243,     0,     0,   244,     0,     0,     0,   245,
       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
     258,     0,     0,     0,   259,   260,     0,     0,     0,   261,
     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
       0,     0,     0,     0,     0,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
     323,   324,   325,   326,   327,   328,   329,   330,     0,     0,
     331,   332,     0,     0,   333,   334,   335,   336,     0,     0,
       0,   337,   338,     0,     0,     0,     0,   339,   340,   341,
       0,   342,   343,   344,   345,     0,   346,   347,     0,     0,
       0,     0,     0,     0,     0,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,     0,     0,   364,   365,   366,
       0,   367,     0,   368,   369,   370,   371,   372,     0,   373,
     374,   375,     0,     0,   376,     0,     0,     0,   377,   378,
     379,   380,   381,     0,     0,   382,   383,   384,   385,   386,
       0,   387,   388,     0,   389,   390,   391,     0,     0,   392,
       0,   393,     0,   394,   395,     0,   396,   397,     0,     0,
       0,   398,   399,   400,   401,   402,   403,   404,   405,   406,
     407,     0,   408,   409,     0,     0,     0,   410,   411,   412,
     413,     0,     0,     0,   414,     0,     0,     0,   415,     0,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
     425,     0,     0,     0,     0,     0,     0,   426,   427,     0,
     428,     0,     0,   429,     0,     0,   430,   431,   432,     0,
       0,   433,   434,     0,   435,   436,   437,   438,   439,   440,
       0,     0,   441,   442,   443,   444,     0,   445,   446,     0,
     447,     0,   448,   449,   450,   451,     0,     0,   452,   453,
       0,   454,   455,   456,   457,     0,     0,     0,     0,     0,
     458,   459,   460,     0,     0,     0,   461,   462,   463,   464,
       0,   465,   466,     0,   467,   468,     0,   469,   470,     0,
       0,   471,     0,     0,   472,     0,   473,     0,   474,   475,
     476,     0,     0,     0,     0,     0,     0,   477,     0,     0,
     478,     0,     0,     0,   479,   480,   481,   482,   483,   484,
       0,     0,     0,     0,     0,     0,   485,   486,     0,   487,
     488,   489,     0,     0,   490,     0,     0,     0,     0,   139,
       0,   140,   141,   142,   143,   144,  2512,     0,   145,     0,
       0,     0,   146,     0,  2513,   147,     0,   148,   149,   150,
     151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
     161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
     166,     0,   167,   168,     0,   169,   170,     0,   171,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
     199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
       0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
     230,   231,   232,   233,   234,   235,     0,     0,   236,   237,
     238,     0,     0,   239,   240,     0,   241,   242,   243,     0,
       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
       0,     0,   255,   256,   257,     0,   258,     0,     0,     0,
     259,   260,     0,     0,     0,   261,   262,   263,   264,     0,
       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
       0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
     278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
     287,     0,   288,   289,     0,     0,     0,     0,     0,     0,
       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
     327,   328,   329,   330,     0,     0,   331,   332,     0,     0,
     333,   334,   335,   336,     0,     0,     0,   337,   338,     0,
       0,     0,     0,   339,   340,   341,     0,   342,   343,   344,
     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
       0,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,     0,     0,   364,   365,   366,     0,   367,     0,   368,
     369,   370,   371,   372,     0,   373,   374,   375,     0,     0,
     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
     389,   390,   391,     0,     0,   392,     0,   393,     0,   394,
     395,     0,   396,   397,     0,     0,     0,   398,   399,   400,
     401,   402,   403,   404,   405,   406,   407,     0,   408,   409,
       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
       0,     0,   430,   431,   432,     0,     0,   433,   434,     0,
     435,   436,   437,   438,   439,   440,     0,     0,   441,   442,
     443,   444,     0,   445,   446,     0,   447,     0,   448,   449,
     450,   451,     0,     0,   452,   453,     0,   454,   455,   456,
     457,     0,     0,     0,     0,     0,   458,   459,   460,     0,
       0,     0,   461,   462,   463,   464,     0,   465,   466,     0,
     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
     472,     0,   473,     0,   474,   475,   476,     0,     0,     0,
       0,     0,     0,   477,     0,     0,   478,     0,     0,     0,
     479,   480,   481,   482,   483,   484,     0,     0,     0,     0,
       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
     490,     0,     0,     0,     0,   139,     0,   140,   141,   142,
     143,   144,     0,     0,   145,     0,     0,     0,   146,  4435,
     779,   147,     0,   148,   149,   150,   151,   152,   153,   154,
       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
       0,     0,     0,   209,   210,     0,     0,     0,     0,   211,
       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
     240,     0,   241,   242,   243,     0,     0,   244,     0,     0,
       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
     257,     0,   258,     0,     0,     0,   259,   260,     0,     0,
       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
       0,   281,     0,     0,   282,   283,     0,     0,     0,     0,
       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
       0,     0,     0,     0,     0,     0,     0,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
       0,     0,   331,   332,     0,     0,   333,   334,   335,   336,
       0,     0,     0,   337,   338,     0,     0,     0,     0,   339,
     340,   341,     0,   342,   343,   344,   345,     0,   346,   347,
       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,     0,     0,   364,
     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
       0,   373,   374,   375,     0,     0,   376,     0,     0,     0,
     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
     385,   386,     0,   387,   388,     0,   389,   390,   391,     0,
       0,   392,     0,   393,     0,   394,   395,     0,   396,   397,
       0,     0,     0,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,     0,   408,   409,     0,     0,     0,   410,
     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
     432,     0,     0,   433,   434,     0,   435,   436,   437,   438,
     439,   440,     0,     0,   441,   442,   443,   444,     0,   445,
     446,     0,   447,     0,   448,   449,   450,   451,     0,     0,
     452,   453,     0,   454,   455,   456,   457,     0,     0,     0,
       0,     0,   458,   459,   460,     0,     0,     0,   461,   462,
     463,   464,     0,   465,   466,     0,   467,   468,     0,   469,
     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
     474,   475,   476,     0,     0,     0,     0,     0,     0,   477,
       0,     0,   478,     0,     0,     0,   479,   480,   481,   482,
     483,   484,     0,     0,     0,     0,     0,     0,   485,   486,
       0,   487,   488,   489,     0,     0,   490,     0,     0,   139,
       0,   140,   141,   142,   143,   144,     0,     0,   145,     0,
       0,     0,   146,     0,     0,   147,   538,   148,   149,   150,
     151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
     161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
     166,     0,   167,   168,     0,   169,   170,     0,   171,   172,
     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
     182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
     199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
       0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
     230,   231,   232,   233,   234,   235,     0,     0,   236,   605,
     238,     0,     0,   239,   240,     0,   241,   242,   243,     0,
       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
       0,     0,   255,   256,   257,     0,   258,     0,     0,     0,
     259,   260,     0,     0,     0,   261,   262,   263,   264,     0,
       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
       0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
     278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
     287,     0,   288,   289,     0,     0,     0,     0,     0,     0,
       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
     327,   328,   329,   330,     0,     0,   331,   332,     0,     0,
     333,   334,   335,   336,     0,     0,     0,   337,   338,     0,
       0,     0,     0,   339,   340,   341,     0,   342,   343,   344,
     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
       0,     0,   348,   349,   350,     0,     0,   351,     0,   352,
     353,   606,   355,   356,   357,   358,   359,   360,   361,   362,
     363,     0,     0,   364,   365,   366,     0,   367,     0,   368,
     369,   370,   371,   372,     0,   373,   374,   375,     0,     0,
     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
     389,   390,   391,     0,     0,   392,     0,   393,     0,   394,
     395,     0,   396,   397,     0,     0,     0,   398,   399,   400,
     401,   402,   403,   404,   405,   406,   407,     0,   408,   409,
       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
       0,     0,   430,   431,   432,     0,     0,   433,   434,     0,
     435,   436,   437,   438,   439,   440,     0,     0,   441,   442,
     443,   444,     0,   445,   446,     0,   447,     0,   448,   449,
     450,   451,     0,     0,   452,   453,     0,   454,   455,   456,
     457,     0,     0,     0,     0,     0,   458,   459,   460,     0,
       0,     0,   461,   462,   463,   464,     0,   465,   466,     0,
     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
     472,     0,   473,     0,   474,   475,   476,     0,     0,     0,
       0,     0,     0,   477,     0,     0,   478,     0,     0,     0,
     479,   480,   481,   482,   483,   484,     0,     0,     0,     0,
       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
     490,     0,     0,   139,     0,   140,   141,   142,   143,   144,
       0,     0,   145,     0,     0,     0,   146,     0,     0,   147,
     538,   148,   149,   150,   151,   152,   153,   154,     0,   155,
       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
       0,   209,   210,     0,     0,     0,     0,   211,     0,   212,
       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
     241,   242,   243,     0,     0,   244,     0,     0,     0,   245,
       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
     258,     0,     0,     0,   259,   260,     0,     0,     0,   261,
     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
       0,     0,     0,     0,     0,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
     323,   324,   325,   326,   327,   328,   329,   330,     0,     0,
     331,   332,     0,     0,   333,   334,   335,   336,     0,     0,
       0,   337,   338,     0,     0,     0,     0,   339,   340,   341,
       0,   342,   343,   344,   345,     0,   346,   347,     0,     0,
       0,     0,     0,     0,     0,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,     0,     0,   364,   365,   366,
       0,   367,     0,   368,   369,   370,   371,   372,     0,   373,
     374,   375,     0,     0,   376,     0,     0,     0,   377,   378,
     379,   380,   381,     0,     0,   382,   383,   384,   385,   386,
       0,   387,   388,     0,   389,   390,   391,     0,     0,   392,
       0,   393,     0,   394,   395,     0,   396,   397,     0,     0,
       0,   398,   399,   400,   401,   402,   403,   404,   405,   406,
     407,     0,   408,   409,     0,     0,     0,   410,   411,   412,
     413,     0,     0,     0,   414,     0,     0,     0,   415,     0,
     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
     425,     0,     0,     0,     0,     0,     0,   426,   427,     0,
     428,     0,     0,   429,     0,     0,   430,   431,   432,     0,
       0,   433,   434,     0,   435,   436,   437,   438,   439,   440,
       0,     0,   441,   442,   443,   444,     0,   445,   446,     0,
     447,     0,   448,   449,   450,   451,     0,     0,   452,   453,
       0,   454,   455,   456,   457,     0,     0,     0,     0,     0,
     458,   459,   460,     0,     0,     0,   461,   462,   463,   464,
       0,   465,   466,     0,   467,   468,     0,   469,   470,     0,
       0,   471,     0,     0,   472,     0,   473,     0,   474,   475,
     476,     0,     0,     0,     0,     0,     0,   477,     0,     0,
     478,     0,     0,     0,   479,   480,   481,   482,   483,   484,
       0,     0,     0,     0,     0,     0,   485,   486,     0,   487,
     488,   489,     0,     0,   490,     0,     0,   139,     0,   140,
     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
     146,     0,     0,   147,   779,   148,   149,   150,   151,   152,
     153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
       0,   211,     0,   212,     0,     0,     0,   213,     0,   214,
     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
     280,     0,     0,   281,     0,     0,   282,   283,     0,     0,
       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
     329,   330,     0,     0,   331,   332,     0,     0,   333,   334,
     335,   336,     0,     0,     0,   337,   338,     0,     0,     0,
       0,   339,   340,   341,     0,   342,   343,   344,   345,     0,
     346,   347,     0,     0,     0,     0,     0,     0,     0,     0,
     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,     0,
       0,   364,   365,   366,     0,   367,     0,   368,   369,   370,
     371,   372,     0,   373,   374,   375,     0,     0,   376,     0,
       0,     0,   377,   378,   379,   380,   381,     0,     0,   382,
     383,   384,   385,   386,     0,   387,   388,     0,   389,   390,
     391,     0,     0,   392,     0,   393,     0,   394,   395,     0,
     396,   397,     0,     0,     0,   398,   399,   400,   401,   402,
     403,   404,   405,   406,   407,     0,   408,   409,     0,     0,
       0,   410,   411,   412,   413,     0,     0,     0,   414,     0,
       0,     0,   415,     0,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,   425,     0,     0,     0,     0,     0,
       0,   426,   427,     0,   428,     0,     0,   429,     0,     0,
     430,   431,   432,     0,     0,   433,   434,     0,   435,   436,
     437,   438,   439,   440,     0,     0,   441,   442,   443,   444,
       0,   445,   446,     0,   447,     0,   448,   449,   450,   451,
       0,     0,   452,   453,     0,   454,   455,   456,   457,     0,
       0,     0,     0,     0,   458,   459,   460,     0,     0,     0,
     461,   462,   463,   464,     0,   465,   466,     0,   467,   468,
       0,   469,   470,     0,     0,   471,     0,     0,   472,     0,
     473,     0,   474,   475,   476,     0,     0,     0,     0,     0,
       0,   477,     0,     0,   478,     0,     0,     0,   479,   480,
     481,   482,   483,   484,     0,     0,     0,     0,     0,     0,
     485,   486,     0,   487,   488,   489,     0,     0,   490,     0,
       0,   139,     0,   140,   141,   142,   143,   144,     0,     0,
     145,     0,     0,     0,   146,     0,     0,   147,  2513,   148,
     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
       0,     0,   490,     0,   139,     0,   140,   141,   142,   143,
     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
     147,  1693,   148,   149,   150,   151,   152,   153,   154,     0,
     155,     0,     0,     0,   156,     0,     0,     0,   157,     0,
       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
       0,   164,     0,     0,   165,   166,     0,   167,   168,     0,
     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
       0,   178,   179,   180,   181,   182,   183,   184,   185,     0,
     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
     195,     0,   196,   197,   198,   199,   200,     0,   201,     0,
       0,   202,     0,     0,   203,     0,     0,     0,   204,     0,
       0,     0,   205,   206,   207,     0,     0,   208,     0,     0,
       0,     0,   209,   210,     0,     0,     0,     0,   211,     0,
     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
     235,     0,     0,   236,   237,   238,     0,     0,   239,   240,
       0,   241,   242,   243,     0,     0,   244,     0,     0,     0,
     245,     0,   246,     0,   247,     0,   248,   249,   250,   251,
     252,   253,     0,   254,     0,     0,     0,   255,   256,   257,
       0,   258,     0,     0,     0,   259,   260,     0,     0,     0,
     261,   262,   263,   264,     0,     0,   265,   266,   267,     0,
     268,     0,   269,     0,     0,     0,     0,   270,   271,     0,
       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
       0,     0,   277,     0,     0,   278,   279,   280,     0,     0,
     281,     0,     0,   282,   283,   617,     0,     0,     0,     0,
     284,   285,     0,   286,     0,   287,     0,   288,   289,     0,
       0,     0,     0,     0,     0,     0,   290,   291,   292,   293,
     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
     303,   304,   305,     0,   306,   307,   308,   309,     0,   310,
     311,     0,     0,     0,     0,   312,   313,   314,   315,   316,
     317,     0,     0,   318,   319,     0,   320,     0,   321,     0,
     322,   323,   324,   325,   326,   327,   328,   329,   330,     0,
       0,   331,   332,     0,     0,   333,   334,   335,   336,     0,
       0,     0,   337,   338,     0,     0,     0,     0,   339,   340,
     341,     0,   342,   343,   344,   345,     0,   346,   347,     0,
       0,     0,     0,     0,     0,     0,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,   363,     0,     0,   364,   365,
     366,     0,   367,     0,   368,   369,   370,   371,   372,     0,
     373,   374,   375,     0,     0,   376,     0,     0,     0,   377,
     378,   379,   380,   381,     0,     0,   382,   383,   384,   385,
     386,     0,   387,   388,     0,   389,   390,   391,     0,     0,
     392,     0,   393,     0,   394,   395,     0,   396,   397,     0,
       0,     0,   398,   399,   400,   401,   402,   403,   404,   405,
     406,   407,     0,   408,   409,     0,     0,     0,   410,   411,
     412,   413,     0,     0,     0,   414,     0,     0,     0,   415,
       0,   416,   417,   418,   419,     0,   420,   421,   422,   423,
     424,   425,     0,     0,     0,     0,     0,     0,   426,   427,
       0,   428,     0,     0,   429,     0,     0,   430,   431,   432,
       0,     0,   433,   434,     0,   435,   436,   437,   438,   439,
     440,     0,     0,   441,   442,   443,   444,     0,   445,   446,
       0,   447,     0,   448,   449,   450,   451,     0,   136,   452,
     453,     0,   454,   455,   456,   457,     0,     0,     0,     0,
       0,   458,   459,   460,     0,     0,     0,   461,   462,   463,
     464,     0,   465,   466,     0,   467,   468,     0,   469,   470,
       0,     0,   471,     0,     0,   472,     0,   473,     0,   474,
     475,   476,     0,     0,     0,     0,     0,     0,   477,     0,
       0,   478,     0,     0,     0,   479,   480,   481,   482,   483,
     484,     0,     0,     0,     0,     0,     0,   485,   486,     0,
     487,   488,   489,     0,     0,   490,     0,   139,     0,   140,
     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
     146,     0,     0,   147,  2792,   148,   149,   150,   151,   152,
     153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
       0,   211,     0,   212,     0,     0,     0,   213,     0,   214,
     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
     280,     0,     0,   281,     0,     0,   282,   283,   617,     0,
       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
     329,   330,     0,     0,   331,   332,     0,     0,   333,   334,
     335,   336,     0,     0,     0,   337,   338,     0,     0,     0,
       0,   339,   340,   341,     0,   342,   343,   344,   345,     0,
     346,   347,     0,     0,     0,     0,     0,     0,     0,     0,
     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,     0,
       0,   364,   365,   366,     0,   367,     0,   368,   369,   370,
     371,   372,     0,   373,   374,   375,     0,     0,   376,     0,
       0,     0,   377,   378,   379,   380,   381,     0,     0,   382,
     383,   384,   385,   386,     0,   387,   388,     0,   389,   390,
     391,     0,     0,   392,     0,   393,     0,   394,   395,     0,
     396,   397,     0,     0,     0,   398,   399,   400,   401,   402,
     403,   404,   405,   406,   407,     0,   408,   409,     0,     0,
       0,   410,   411,   412,   413,     0,     0,     0,   414,     0,
       0,     0,   415,     0,   416,   417,   418,   419,     0,   420,
     421,   422,   423,   424,   425,     0,     0,     0,     0,     0,
       0,   426,   427,     0,   428,     0,     0,   429,     0,     0,
     430,   431,   432,     0,     0,   433,   434,     0,   435,   436,
     437,   438,   439,   440,     0,     0,   441,   442,   443,   444,
       0,   445,   446,     0,   447,     0,   448,   449,   450,   451,
       0,   136,   452,   453,     0,   454,   455,   456,   457,     0,
       0,     0,     0,     0,   458,   459,   460,     0,     0,     0,
     461,   462,   463,   464,     0,   465,   466,     0,   467,   468,
       0,   469,   470,     0,     0,   471,     0,     0,   472,     0,
     473,     0,   474,   475,   476,     0,     0,     0,     0,     0,
       0,   477,     0,     0,   478,     0,     0,     0,   479,   480,
     481,   482,   483,   484,     0,     0,     0,     0,     0,     0,
     485,   486,     0,   487,   488,   489,     0,     0,   490,     0,
     139,     0,   140,   141,   142,   143,   144,     0,     0,   145,
       0,     0,     0,   146,     0,     0,     0,  3449,   148,   149,
     150,   151,   152,   153,     0,     0,  -329,     0,     0,     0,
     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
       0,   161,     0,     0,     0,     0,     0,   164,  3887,     0,
     165,   166,     0,   167,     0,     0,     0,     0,     0,   171,
     172,   173,   174,  3888,   176,   177,     0,   178,   179,     0,
       0,     0,     0,     0,     0,     0,   186,     0,   188,     0,
     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
     198,     0,   200,     0,   201,     0,     0,   202,     0,     0,
     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
     207,     0,     0,   208,     0,     0,     0,     0,   209,     0,
       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
       0,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,     0,     0,     0,     0,   236,
     237,   238,     0,     0,   239,   240,  3889,   241,   242,   243,
       0,     0,     0,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
       0,     0,     0,     0,   256,   257,     0,     0,     0,     0,
       0,     0,   260,     0,     0,     0,   261,   262,   263,   264,
    3890,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,     0,   270,     0,     0,     0,     0,   272,     0,
     273,   274,     0,   275,   276,  3891,     0,     0,   277,     0,
       0,     0,   279,   280,     0,     0,   281,  3892,     0,   282,
     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,     0,     0,  -284,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
     326,   327,   328,   329,   330,     0,     0,   331,   332,     0,
       0,   333,   334,   335,   336,     0,     0,     0,     0,   338,
       0,     0,     0,     0,   339,   340,   341,     0,   342,   343,
     344,  3893,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   349,   350,     0,     0,     0,     0,
     352,   353,   354,     0,   356,   357,   358,   359,   360,   361,
     362,     0,     0,     0,     0,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   373,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,     0,
       0,   389,     0,   391,  -284,     0,   392,     0,     0,     0,
     394,     0,     0,   396,   397,  3894,     0,     0,     0,   399,
     400,   401,   402,   403,   404,     0,   406,   407,     0,   408,
       0,     0,     0,     0,   410,   411,   412,     0,     0,     0,
       0,   414,     0,     0,     0,   415,     0,     0,   417,     0,
     419,     0,   420,     0,   422,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,     0,   432,     0,     0,     0,   434,
       0,   435,   436,   437,   438,   439,   440,     0,     0,   441,
     442,   443,   444,     0,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,     0,   452,   453,     0,   454,   455,
     456,   457,     0,     0,     0,     0,     0,   458,   459,   460,
       0,     0,     0,     0,   462,   463,   464,     0,   465,   466,
       0,   467,   468,     0,     0,     0,     0,     0,   471,     0,
       0,   472,     0,     0,     0,   474,   475,   476,     0,     0,
       0,     0,     0,     0,   477,     0,     0,   478,     0,     0,
       0,   479,   480,   481,   482,   483,   484,     0,     0,  -284,
       0,     0,     0,   485,     0,     0,   487,     0,   489,     0,
     139,   490,   140,   141,   142,   143,   144,     0,     0,   145,
       0,     0,     0,   146,     0,  4441,   147,     0,   148,   149,
     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
     203,     0,   992,     0,   204,     0,     0,     0,   205,   206,
     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
     237,   238,     0,     0,   239,   240,     0,   241,   242,   243,
       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
     283,   617,     0,     0,     0,     0,   284,   285,     0,   286,
       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
     326,   327,   328,   329,   330,     0,     0,   331,   332,     0,
       0,   333,   334,   335,   336,     0,     0,     0,   337,   338,
       0,     0,     0,     0,   339,   340,   341,     0,   342,   343,
     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
       0,     0,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,   363,     0,     0,   364,   365,   366,     0,   367,     0,
     368,   369,   370,   371,   372,     0,   373,   374,   375,     0,
       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
       0,   389,   390,   391,     0,     0,   392,     0,   393,     0,
     394,   395,     0,   396,   397,     0,     0,     0,   398,   399,
     400,   401,   402,   403,   404,   405,   406,   407,     0,   408,
     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
     429,     0,     0,   430,   431,   432,     0,     0,   433,   434,
       0,   435,   436,   437,   438,   439,   440,     0,     0,   441,
     442,   443,   444,     0,   445,   446,     0,   447,     0,   448,
     449,   450,   451,     0,   136,   452,   453,     0,   454,   455,
     456,   457,     0,     0,     0,     0,     0,   458,   459,   460,
       0,     0,     0,   461,   462,   463,   464,     0,   465,   466,
       0,   467,   468,     0,   469,   470,     0,     0,   471,     0,
       0,   472,     0,   473,     0,   474,   475,   476,     0,     0,
       0,     0,     0,     0,   477,     0,     0,   478,     0,     0,
       0,   479,   480,   481,   482,   483,   484,     0,     0,     0,
       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
       0,   490,   139,     0,   140,   141,   142,   143,   144,     0,
       0,   145,     0,  1171,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
    2102,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
    2780,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
    3110,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
    3454,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,  2425,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,  2426,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
    2427,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  2428,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,  1034,  1035,     0,
     337,   338,     0,     0,  2429,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,  4421,   563,  4422,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  2430,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,  1581,     0,     0,  2951,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,  1582,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
    2846,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  2847,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,  2848,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  2849,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,  1581,     0,     0,  3881,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,  1582,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
    2846,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  2847,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,  2848,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  2849,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,  1581,     0,     0,  4165,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,  1582,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
    2846,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  2847,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,  2848,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  2849,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,  2624,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2786,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,  2252,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,  2253,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,   969,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
     970,   971,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   972,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  1857,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,  1858,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,   736,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,  1859,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  1860,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,  2794,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2795,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  1857,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,  1858,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,   736,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  1860,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,  2624,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2786,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,  1857,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,  1858,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,   736,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,  3603,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,  1860,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,   992,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,  1381,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,  2624,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2837,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,   617,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,  2776,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,  4339,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
    4340,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,   563,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,  1070,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2023,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2356,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,  2357,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,  2880,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,  2967,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,   136,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,  2356,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
    1774,   243,     0,     0,   244,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,  1775,   335,   336,     0,     0,     0,
     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,  -299,  -299,
     222,     0,  -299,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,  -320,     0,
     222,     0,  -320,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,  -320,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,  -317,     0,
     222,     0,  -317,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,  -317,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,  4229,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,  -322,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,  4344,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,  4390,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,  -303,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,     0,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
    3887,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,  3888,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,     0,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,  3889,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,  3890,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,  3891,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,  3892,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,  3893,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,  -284,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,  3894,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,  4232,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,  -284,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,   139,   490,   140,   141,   142,   143,   144,     0,
       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
     148,   149,   150,   151,   152,   153,     0,     0,     0,     0,
       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
       0,     0,   165,   166,     0,   167,     0,     0,     0,     0,
       0,   171,   172,   173,   174,     0,   176,   177,     0,   178,
     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
       0,     0,     0,     0,   219,   220,   221,     0,     0,     0,
     222,     0,     0,   224,     0,   225,   226,   227,     0,     0,
     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
     277,     0,     0,     0,   279,   280,     0,     0,   281,     0,
       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
       0,   338,     0,     0,     0,     0,   339,   340,   341,     0,
     342,   343,   344,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   349,   350,     0,     0,
       0,     0,   352,   353,   354,     0,   356,   357,   358,   359,
     360,   361,   362,     0,     0,     0,     0,   365,   366,     0,
     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
     387,     0,     0,   389,     0,   391,     0,     0,   392,     0,
       0,     0,   394,     0,     0,   396,   397,     0,     0,     0,
       0,   399,   400,   401,   402,   403,   404,     0,   406,   407,
       0,   408,     0,     0,     0,     0,   410,   411,   412,     0,
       0,     0,     0,   414,     0,     0,     0,   415,     0,     0,
     417,     0,   419,     0,   420,     0,   422,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
       0,     0,   429,     0,     0,   430,     0,   432,     0,     0,
       0,   434,     0,   435,   436,   437,   438,   439,   440,     0,
       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
     459,   460,     0,     0,     0,     0,   462,   463,   464,     0,
     465,   466,     0,   467,   468,     0,     0,     0,     0,     0,
     471,     0,     0,   472,     0,     0,     0,   474,   475,   476,
       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
       0,     0,     0,     0,     0,   485,     0,     0,   487,     0,
     489,     0,     0,   490
};

static const yytype_int16 yycheck[] =
{
       6,   645,   576,   553,   985,    20,   599,   576,  1175,  1145,
    1102,   896,   986,    19,    29,   124,    22,   693,  1690,  1797,
    1074,    36,  1175,     6,   613,   672,    32,  1828,  1829,   810,
     698,  1121,   719,    39,  1068,  1069,    42,  1483,  1384,  2016,
      46,   923,  1384,  1238,  1307,  1816,   948,  2051,    54,  2477,
     521,  2288,  2518,  1481,  1197,  2585,  2814,  2326,  2759,  2118,
    2407,  1204,  2599,  3203,  2395,   990,   948,  1315,  1958,  1205,
    1206,  1956,  2131,  1209,  1210,  1211,  1212,  1472,  1214,  1215,
    1216,  1217,  1218,  1219,  1220,  1221,   754,    22,   764,   757,
      96,  1956,   921,     4,  1911,  1912,  2097,  1112,  2217,   641,
     642,  1816,  2959,   990,   654,   655,  1395,  2472,  1887,  2132,
     659,  1928,  2349,   119,  2260,   121,    17,   123,   124,   125,
     949,  2076,  2339,  3439,  1413,   772,   773,   774,  1945,  1946,
    2076,  3209,  1421,  1422,  2388,  1464,  2451,   784,   121,   783,
     123,    17,  2396,     9,  1961,  1962,    34,  1964,    19,  2616,
    1967,  1968,  1959,   879,  1971,  3092,  1963,    60,  3486,  1976,
    1454,    96,    28,  1980,  1981,  1982,  1983,  1974,    36,    35,
    1987,  1988,    25,  1990,    73,  3227,    19,  1984,    19,  1996,
    2752,    36,  1999,  2000,  1827,  2002,   164,    51,  2676,    58,
    1939,  2076,    16,    17,    66,   112,  1525,  2561,    46,  3483,
    1930,    47,  2101,   175,  2440,    19,   131,  2613,  2614,    51,
      30,  2076,   950,  2619,    70,  2621,  2013,    90,    83,    16,
      17,   175,    21,   812,    68,  3266,  3267,   312,   161,  3270,
     145,   233,    59,    60,   267,    34,    43,   268,   964,    21,
    2870,   217,    63,  2060,  2061,  2062,  2063,   195,  3289,    48,
     132,   209,    34,    56,  2949,  3296,   157,   190,  4016,   193,
      59,    60,   318,    16,    17,   388,    48,   161,   134,  1464,
      10,    82,   279,  1902,    16,    17,  3496,    59,    60,   354,
     147,   226,    71,   226,   390,   874,   157,   449,  2037,   128,
     161,   251,   114,  2042,   128,  3435,    52,    88,   442,  2048,
    2049,    21,    34,   270,  2053,    63,   175,    63,   647,  2211,
     179,   434,  2436,  2437,    16,    17,   992,    23,   157,   389,
     161,   190,   140,   157,    16,    17,   482,   539,   335,    12,
    1525,   466,    82,   512,   129,    16,    17,  3378,   366,    59,
      60,   372,   285,  3627,   466,   213,   214,   161,    16,    17,
     129,    41,   354,   393,   274,   237,    16,    17,   213,   214,
      21,  4010,   210,  1948,  2065,    16,    17,    16,    17,    16,
      17,   351,  3923,    34,    20,   417,   128,   166,   507,  2380,
     233,   484,  2359,  2360,  2361,   235,   571,    48,    16,    17,
      16,    17,  3676,    70,   244,   510,   438,   506,    59,    60,
     192,  3671,    16,    17,   175,   157,   539,   508,   230,   538,
     301,   222,  2587,   224,    16,    17,   608,    19,   605,   575,
     400,    16,    17,   635,  1111,    16,    17,   469,   529,  2553,
    2554,   189,   151,   542,   151,   355,   151,  3707,  1125,   132,
     230,   413,   253,   630,   629,   135,  2345,   316,   243,   552,
     490,   385,    16,    17,  1235,   308,   404,  4106,   141,   413,
    1434,   617,   115,   169,   243,   118,   588,   589,   807,   539,
     413,   285,  3788,  1015,   636,  2394,   268,   592,   657,    16,
      17,   537,  3523,    16,    17,    86,   630,   133,   448,   456,
    2821,  3532,   598,   628,   285,   440,  1046,  1047,  1048,   317,
     506,  4052,   508,   510,  2454,  3725,   628,   630,   564,   376,
     337,   192,   514,   157,   157,  3556,  4274,  4275,   274,   525,
    3561,  3599,  3662,   529,   599,    51,    40,   377,  1974,  1454,
     190,   489,   538,   340,   510,   146,   542,  3232,   544,   412,
     571,  2888,   475,   628,   413,  1740,  2763,  2764,  2765,   483,
     353,   557,    16,    17,  2869,  2440,  1200,  2872,  2873,   474,
    1389,  1208,   389,  1392,  1446,    16,    17,  1454,  1397,   301,
     603,  3143,  1298,   417,   371,  2440,  2891,   374,  1225,   585,
      73,   475,  1718,   447,   373,   533,  3216,    16,    17,    16,
      17,   157,  1881,  1729,  1423,  1424,  1732,   599,   604,  1524,
    2601,  1930,  1328,   417,   425,   447,  2561,   613,   636,   615,
    2005,   459,   484,    16,    17,  2561,  1087,  1088,   371,  2983,
     626,   374,   600,  2859,   268,   268,   632,  1956,   582,   371,
    3708,   637,   374,   639,   545,   641,   642,  1524,    16,    17,
     646,   647,   413,  1114,   402,   651,  3134,  2269,  3406,   632,
    2467,  1122,  2401,  1124,   510,   661,   662,   663,   630,  2456,
     226,   667,  2479,  2460,   404,  1136,  1137,  1138,   534,   371,
    3954,   539,   374,  1144,   550,   586,  2561,  2474,  2475,   371,
     597,  1419,   374,  1464,   539,  4013,   552,  2484,   591,  2419,
     371,   626,  1281,   374,   560,   577,  2561,  1712,   563,  2598,
     809,  1243,   637,   371,   605,  1797,   374,  3991,  2351,   550,
    2459,   371,  2461,   719,   374,  2512,    16,    17,  3206,  2468,
     371,   587,   371,   374,   371,   374,  3804,   374,  4044,   628,
     550,   656,  2481,   634,  3786,  1930,  2065,  3006,  2487,  2488,
     628,   584,  2559,   371,  1525,   371,   374,  2076,   374,  2895,
     596,    16,    17,  3690,  2503,  2504,  3834,   371,  2387,   605,
     374,   630,  1351,   634,   504,  2059,  2767,  2768,  1310,   371,
     569,   777,   374,   779,  2552,  2677,   371,   630,  2527,   374,
     371,  3248,  3249,   374,  1510,  1327,  2583,   569,   630,  3256,
     614,   613,  3259,  3260,   605,   634,   610,   803,   804,   805,
     634,   807,   808,   809,  1393,   811,   812,   371,   635,  3276,
     374,   582,   594,   922,   572,   555,  2793,   614,    16,    17,
    4371,   804,   572,  3290,  1373,   808,    64,   353,   811,  3296,
    3297,  3298,  3299,   510,   371,  3010,   633,   374,   371,    16,
      17,   374,   584,   849,  3250,    25,   628,  4163,  3254,   569,
      16,    17,  2829,  2438,  2555,   466,   862,   597,  2982,   630,
     461,   614,  3193,  3941,    16,    17,  3197,  2295,   874,   875,
    2065,  3140,   614,   879,   440,  3240,   629,   630,  3284,  3285,
    3286,  2076,   634,   602,   577,   602,  3292,   602,   630,  1458,
     543,    16,    17,   546,  3300,    16,    17,   357,  3213,  2700,
      16,    17,  3369,  2822,  2823,    16,    17,   371,   569,   460,
     374,   387,   614,   406,   360,  3152,   922,  2867,    16,    17,
     371,   447,   614,   374,    16,    17,  3783,   862,   630,   590,
     591,  3148,   178,   614,   128,  2736,    71,   629,   630,  3193,
     875,  3478,   371,  3197,   371,   374,   614,   374,   474,   630,
     816,  1638,    16,    17,   614,   154,    25,   868,   964,   603,
     603,  3367,   630,   614,  2742,   614,   165,   614,   371,   629,
    3376,   374,   188,   628,  2859,  1877,  4017,   372,  4019,   630,
     986,   630,   629,   630,  1533,   268,   614,  4065,   614,  2760,
     634,   634,   622,   371,  2859,  1877,   374,   511,   369,   629,
     614,   629,   630,   629,   630,  1907,   285,  2453,  2454,  1015,
     226,   249,   614,  4091,    82,  3016,   630,   628,   532,   614,
    2156,   632,  3045,   614,  2370,  1907,  2372,  2373,  2983,     6,
    2372,  2373,  4172,  2812,   629,   630,   529,  2983,   629,   630,
    3033,  1870,    32,  2933,   558,  2760,    16,    17,   466,  2103,
     614,  1880,   130,   233,  1883,  1884,   159,    11,   466,  2307,
    1066,   554,  4048,   244,  1070,   629,   630,    12,   634,  3188,
     188,   371,    16,    17,   374,   484,   195,   614,  1187,  3041,
      57,   614,   340,   264,  1731,    16,    17,     8,  2231,   372,
    2419,   159,  2381,   630,  2716,  2717,  2718,   630,  2983,    16,
      17,    82,   251,   235,   362,  1111,   371,  2885,   226,   374,
     356,  2440,   244,  2508,   263,  1224,    16,    17,  2983,  1125,
     341,    64,    16,    17,    16,    17,   466,  2934,   308,  1816,
     233,  1066,   654,   655,  2059,  1070,  2399,   341,   417,  3470,
    3471,  3678,  2814,   192,   533,   111,   422,  2237,  2238,  1930,
     614,   466,   628,    16,    17,    16,    17,  1746,   205,  2326,
    3137,   621,   356,   614,   233,   233,   630,  2303,   145,  1175,
     466,   370,  2059,   371,   354,   129,   374,   157,   138,   630,
      12,  1187,   190,   125,   630,   614,  1736,   614,   341,  3891,
    3892,    12,  1781,   153,   371,     0,   141,   374,   284,  3176,
     629,  3202,   168,   630,   251,   371,  1748,   285,   374,  1318,
     628,   614,   226,    16,    17,  2230,  1805,  1806,  1224,   371,
     628,   466,   374,  1229,  2419,  2240,  2555,   630,  1234,   195,
    2397,  3932,  2561,    16,    17,   630,   614,  1243,   373,   308,
    3998,   222,  1792,   224,  2397,   377,   371,   466,   192,   374,
     371,   354,   630,   374,   244,   371,    16,    17,   374,  3789,
     371,   466,   183,   374,    16,    17,    16,    17,  1837,   277,
      16,    17,   253,   371,   125,  1281,   374,   267,   202,   371,
     348,   519,   374,   466,  2065,   404,   354,  1293,   628,  1295,
     566,   399,  1298,    16,    17,  2076,  3762,  2725,   347,  1234,
    3359,    16,    17,   452,  1310,  3267,   249,   371,  3301,   141,
     374,   557,  1318,   628,   614,  4455,  4302,   632,   539,  2486,
     141,  1327,  1328,    16,    17,   372,   584,   573,  3597,    25,
     630,   610,   628,  2486,   514,   539,   104,    16,    17,   538,
     282,    16,    17,    25,   565,  1351,  2746,    12,  1354,   614,
     274,   365,  1461,   439,   126,   423,  1362,   341,   125,   529,
    2555,   565,    12,   533,   393,   630,  2561,   583,  1374,  1375,
    1376,  1377,  1378,  1379,   351,    16,    17,     8,  1384,   161,
     192,    16,    17,   628,  1390,  1391,   539,  1393,  1299,   622,
    1396,  1374,  1375,  1376,   205,  1378,   629,    16,    17,    30,
      82,   371,    16,    17,   374,   353,   349,   628,  1391,   628,
    1416,   514,   565,  1396,   533,   357,   614,   161,   185,   599,
     374,  2867,   129,   628,   628,   301,  3223,   371,   361,   241,
     374,   282,   630,  2833,    16,    17,   426,   614,   404,   416,
     371,   418,  1377,   374,  1379,   628,   514,  3244,   614,   282,
     130,    16,    17,   630,   371,  1461,   389,   374,  1369,  2805,
    2552,   490,   614,   159,   630,   583,   234,    16,    17,  1475,
     242,   371,  1478,  1479,   374,   628,   141,   371,   630,   371,
     374,  1416,   374,   251,   432,   222,  3463,   224,  2934,   614,
    3837,   141,  1014,   614,   176,   263,   599,   629,   614,   567,
      16,    17,   533,   614,  1510,   630,   357,   168,   371,   630,
     371,   374,   183,   374,   630,   282,   614,   591,   604,   630,
     594,  3790,   614,  1529,   357,  1531,  1532,   630,  1534,  1535,
    2859,   599,   630,  4235,  4236,   215,   412,   233,   630,   268,
    1475,  1547,  1064,  1549,  1479,   192,  2600,   471,  1531,  1532,
     614,   233,   210,  2696,  3613,   539,  1467,   636,    16,    17,
     372,   230,   630,   506,    16,    17,   630,   533,   371,    17,
    3319,   374,   340,  3343,  3344,   431,   519,  3554,   560,   560,
    2747,   565,    16,    17,  2366,   254,   257,  2234,   371,   555,
     357,   374,   550,  4059,  2747,   225,   254,   244,   205,  3836,
      16,    17,   584,   584,    12,   285,   539,   533,   484,    16,
      17,   371,   308,   269,   374,   584,   272,  4083,  4084,   371,
     562,   371,   374,   536,   374,   371,   308,   192,   374,    16,
      17,   597,  1638,  1639,    42,    16,    17,    82,  2419,   142,
    1749,    16,    17,   372,   614,   628,   125,   419,   371,   505,
    2742,   374,    89,   636,  2983,  2126,   371,   230,   354,   374,
     630,   630,  2133,  2331,  2332,  2333,   348,   636,   611,   210,
     614,   108,   354,    16,    17,  2146,  2458,   230,   371,   289,
     290,   374,   353,   614,   452,   629,    16,    17,   230,    97,
    1696,  3119,   371,   225,   102,   374,   371,   614,   629,   374,
    2482,  2483,    16,    17,    16,    17,   185,  3485,  2179,   202,
     628,   562,   629,   254,   614,   584,  3720,  3721,   636,   205,
     614,  3491,   614,  4177,  3495,    47,  4180,    16,    17,   629,
     371,   241,  1738,   374,  3406,   629,   371,   629,  3559,   374,
    1746,  3562,  1748,  1749,   516,    16,    17,   515,   350,   351,
    2339,   614,   371,   614,  1760,   374,  1762,   371,   414,   192,
     374,   630,  1768,  1769,  4192,  1771,   629,   636,   629,   509,
    3541,    16,    17,   513,  2555,  1781,  2247,   222,  1784,   224,
    2561,   274,  1788,   606,   607,    16,    17,   404,  2983,   371,
      16,    17,   374,  2885,  3615,   562,    16,    17,   366,  1805,
    1806,  1807,  1808,   282,   589,   192,   371,   630,   253,   374,
    1816,   614,   529,  1819,  1820,  1821,   533,   192,   514,   429,
     430,   168,   371,    16,    17,   374,   629,   330,    16,    17,
    1836,   614,   514,  1768,  1769,   584,  1771,   474,   246,  1845,
     125,    16,    17,    39,    19,  4000,   629,  4002,   195,  1784,
      46,   605,  4306,  1788,   614,   371,   629,   630,   374,    59,
      60,   285,   614,   580,   614,   633,    16,    17,   614,   629,
     363,    71,  1807,  1808,  2759,   168,  1882,   629,   357,   629,
     629,   630,   629,   629,  1819,  1820,  1821,   504,  1894,    16,
      17,   614,  1803,  1002,  1003,  1901,   634,  2466,  2800,   614,
     185,    82,   195,   599,  2505,   636,   629,  2809,   578,   317,
     504,    16,    17,   371,   629,    96,   374,   599,  2800,   371,
     628,   614,   374,   629,   630,    17,  3189,  2809,   213,  1840,
    3020,     6,  1041,   111,   630,   614,   629,   371,   555,   614,
     374,   368,  3712,  3713,  3772,  3715,  3716,  1882,   629,   630,
     629,    16,    17,   189,   629,   371,   144,   440,   374,    11,
    3050,  3051,   628,  3940,   371,  2074,  1901,   374,   628,    16,
      17,  2080,   380,   614,    16,    17,   628,  3144,   471,   614,
     597,  3071,  2811,  1282,   371,  4038,  1285,   374,   629,  1288,
     371,   630,  1998,   374,   629,   614,   371,   282,   636,   374,
     614,  3347,    12,   628,  1915,  3347,   628,  2013,   628,  2118,
     629,   629,   630,  1924,  1925,   629,    16,    17,   172,    19,
      16,    17,  2131,   628,  1935,  1936,  1937,  1938,   371,  1940,
    1941,   374,   614,   628,  3201,   628,   579,   580,   216,   582,
      80,   371,   629,   630,   374,   629,   630,   629,  3201,   614,
     142,   629,   630,    25,   628,    16,    17,   371,   178,   371,
     374,   628,   374,  3891,  3892,   614,   628,  3234,  2074,  3818,
    3819,  3820,   357,  2760,  2080,   256,  2082,   629,   630,  2085,
     629,  3234,   371,   562,   492,   374,  2092,  2093,  2094,  2095,
     592,   593,  2098,   595,  4071,   597,   629,   630,   614,   628,
     371,   628,  2085,   374,   629,   630,    16,    17,   629,   630,
      82,   628,  2118,   629,  2223,   629,   630,  3934,   526,   628,
     623,   624,   625,   626,    82,  2131,   371,  2038,  2039,   374,
    2041,   141,  2043,  2044,  2045,  2046,  2047,   629,   630,  2050,
     371,  2052,   539,   374,   628,   371,  2255,   328,   374,   189,
     628,   371,  2702,   628,   374,  2744,   614,  2092,  2093,  2094,
    3977,  3978,   614,   628,  3981,  3982,  3983,  3984,  3969,   628,
    4223,   629,   353,   628,  2763,  2764,  2765,   629,   371,   628,
     614,   374,   628,   371,  3218,  3219,   374,   159,    59,    60,
     230,   514,  3970,   628,   155,   629,   371,   455,   614,   374,
     378,  2790,  2983,    17,   176,   215,   628,   614,   628,  4037,
    4038,   389,   584,   629,   254,  3305,   628,  2223,   396,   628,
    2691,   371,   629,   628,   374,  3256,   628,   614,  3259,  3260,
     350,   351,   628,   614,   415,   628,   356,   628,   330,   614,
     629,   630,  2248,   628,   371,  3276,   628,   374,   629,  2255,
     628,  2360,   628,  2362,  2363,   628,   732,  3703,  3704,   628,
      58,   233,   628,  2269,  4081,  4082,   371,  3434,   628,   374,
     628,   614,   530,  4090,  2875,   233,   752,   562,   536,   629,
     630,  3434,   628,  4336,   614,  4338,   629,   104,   628,   765,
     766,  3345,   629,   630,   629,   630,  2302,  2406,  2407,   629,
     614,   628,   614,  4131,   794,  2906,   371,  4085,  4057,   374,
     488,  4364,   629,   630,   403,   629,  2917,   629,  4146,  2920,
    2326,   203,   580,   504,   371,   614,  3998,   374,   142,   371,
     628,  4159,   374,  2339,   628,    34,   308,   628,  3369,   597,
     629,   629,   630,   614,   629,   628,  2352,   628,  2354,  4402,
    4403,   629,   630,   628,  2360,   628,  2362,  2363,   629,    26,
     628,    60,   402,   628,  2370,  2966,  2372,  2373,  2477,   614,
     362,   371,   629,   630,   374,   371,   348,   175,   374,   629,
     630,   179,   354,   614,   629,   477,   478,   628,   614,   628,
     348,  2397,   190,  3485,   614,  4223,   354,   887,   629,   628,
    2406,  2407,   580,   629,    71,  3517,  3518,  4235,  4236,   629,
     371,   628,  3386,   374,   628,    82,   115,   234,  3530,   118,
     628,   614,    36,   305,   306,  3537,   614,   126,   310,   311,
     629,   630,  2447,   628,   251,   455,   629,   557,   142,   614,
    2446,  2352,  2457,   628,   143,  2451,   263,   369,  2463,   628,
    2456,  3563,  3564,   573,  2460,   628,  2462,  4285,   629,   630,
     628,   128,   629,   630,   614,   423,  2472,  4295,  2474,  2475,
    2485,  2477,  4449,   629,   630,    19,  2491,   542,  2484,   629,
    2486,   628,  2497,  2498,   629,   630,   142,   614,   498,   499,
    2496,   501,   628,   503,    11,   542,   629,   630,   628,  2505,
     542,   529,   629,   628,   118,   515,  2512,  2513,  4336,   614,
    4338,   125,  2518,   629,   630,   628,   330,   628,   316,  2525,
    4348,  3168,    80,   340,   629,   629,   630,   619,   620,   621,
     622,   623,   624,   625,   626,   628,  4364,   628,  4366,   362,
    4368,   142,   514,   242,   362,   362,  1769,  4375,  1771,   614,
      60,   630,   123,  2464,  2465,   222,   514,   224,  4386,  3148,
     104,  2496,   629,   630,   178,   629,   630,   614,   629,   630,
     490,   185,   614,   226,  4402,  4403,  2582,  2583,    49,  2490,
    4381,   629,   630,   629,  1080,  1081,  1082,   254,  3059,   279,
    4418,  4419,    49,   466,   111,  4423,  1819,  1820,  1821,   213,
     214,   474,  1098,   629,   630,   115,    31,  2518,   118,   567,
     629,   630,   129,   157,   614,   413,   126,   161,   614,  1109,
     629,   630,  3796,  3797,   630,    63,   330,   599,  3099,    26,
      27,   189,   362,   143,  1130,   452,   362,  1133,   629,   630,
    2551,   599,    80,   342,   188,   460,   190,  2582,   629,   630,
     221,   168,   571,   614,    92,  4456,  1152,  1153,   630,    84,
    1156,   205,   125,   477,   478,    62,   623,   211,   282,  1159,
     629,   630,   230,  1163,   330,   167,   186,   474,   195,   628,
    1176,  1177,   226,   350,   351,    82,   629,   630,   268,   356,
     234,  3827,   125,    90,   190,   362,   254,   241,   515,   629,
     630,   629,   630,    85,   510,    87,  2712,   251,   529,  2715,
    2716,  2717,  2718,   629,   630,   588,   589,   114,  2724,   263,
     167,   104,   185,   510,   268,   629,   630,   341,   279,   330,
     155,   128,   242,   277,   131,   402,   158,  2743,  2744,   629,
     630,  2747,   356,   357,   151,   152,   128,  3642,  3643,   320,
     213,   189,   185,   324,  2760,   628,   194,  2763,  2764,  2765,
     331,   278,   159,   629,   630,    91,  3740,   149,  1160,  1161,
    2776,  3945,  3746,   477,   478,  3949,  2782,  3327,  2784,  2888,
     213,  3154,  3155,   482,  2790,   125,   630,  3356,   128,  2724,
    3112,  3113,   230,   525,    32,   364,   340,  3415,  3416,  2805,
    3967,   629,   184,   470,   157,   619,   620,   621,   622,   623,
     624,   625,   626,   128,  3967,   114,   254,     6,   362,   282,
     628,   477,   478,   635,   125,   222,   113,   224,   372,   339,
     388,     4,   342,   230,   465,   597,   244,   630,   388,    56,
     411,   238,   432,   172,   402,   185,   114,   546,   223,   282,
     630,   234,   630,   636,   523,   524,   253,    71,   527,   528,
     404,    12,   531,  2869,   533,  2776,  2872,  2873,   251,  2875,
     629,   602,   629,   213,   539,   141,   575,     9,  3970,   630,
     263,   636,  2888,   629,   185,  2891,   629,   404,   636,   628,
     267,   636,   159,   464,   357,   630,    49,   635,   279,   279,
    2906,   279,   630,   279,   142,   572,   279,   279,   452,   419,
     307,  2917,   213,   529,  2920,   619,   620,   621,   622,   623,
     624,   625,   626,   628,   357,   539,   274,   630,   325,   543,
     474,   387,   546,   111,  4108,  4109,  2942,   630,   550,  2945,
     550,   630,   282,   557,  2950,    12,   630,   630,   562,    12,
     388,   565,   161,   630,  2960,   472,   630,   340,  2964,   244,
    2966,   623,   245,   527,   402,   621,   622,   623,   624,   625,
     626,   515,   180,   630,   399,  2981,   576,  2960,  2889,   362,
     190,   282,   379,   630,   381,   487,  2897,   504,   391,   137,
    2996,   362,   389,  4085,   630,   629,   421,  3003,   380,   161,
     630,    16,    17,   161,  4171,   161,   244,   621,   622,  3015,
    2945,   161,   162,   530,   161,   161,   194,   357,  4171,   161,
     621,   622,   623,   624,   625,   626,    19,   571,   453,   267,
     601,   161,   161,   496,   161,   142,   546,   161,   161,   583,
     584,   161,   424,   161,  4018,   616,   196,  3932,  3157,  3717,
    3718,  3719,   230,    63,   630,   493,   357,   207,  1554,   603,
     457,   605,   161,   161,  3173,   575,   161,   161,  3003,   452,
      80,   161,   578,   609,   583,  3751,   195,  2988,   141,   192,
     597,   362,    92,   362,   509,   629,   630,  3093,   362,   633,
     634,   630,   330,   623,   629,  3101,   104,   247,   629,   562,
     278,   629,   111,   629,   119,   120,   121,   122,   123,   259,
    3679,   104,   350,   351,   629,  3665,  4252,   514,   629,  3125,
     192,   629,   629,   622,   628,   630,   629,    26,    27,   562,
     630,   629,   515,   530,   572,   629,   286,   534,  3144,  3145,
     142,   629,  3148,   629,  1640,   814,   630,   629,  1644,   629,
     629,  3157,   215,   571,   475,   628,   553,  3163,   628,   168,
      59,    60,   626,    62,   157,   630,   628,  3173,   161,   629,
    1666,   550,    71,   603,   571,  3181,   232,   628,   161,   189,
     521,    11,  3775,    82,   194,   203,   195,   192,   426,   192,
    3101,    90,   636,   629,   344,  3201,   170,   190,   456,   412,
     183,   474,  3878,   218,   219,   220,   221,  3213,   190,   630,
     630,    47,   205,   196,   504,   114,  4352,  3223,   211,  3225,
     230,   230,   562,   330,   207,   465,   234,   338,  3234,   128,
      80,   388,   131,   504,  3240,   504,  3242,   550,  3244,   477,
     478,   234,   244,   251,   254,   504,   137,   504,   241,  4416,
    3359,   388,   388,   491,   252,   263,   252,  3831,   251,   137,
     159,   562,   125,  4416,    47,   128,    19,   530,   530,   278,
     263,   388,  4439,    26,   257,   268,   259,   386,   388,  4446,
     388,   435,   388,   388,   277,  4452,  4439,   278,   584,  4263,
    4264,   628,  4266,  4446,   472,   628,   628,   636,   629,  4452,
     155,   629,   240,   286,   240,   320,   636,   322,   323,   324,
     629,  3317,   629,   125,   636,   493,   331,   125,    71,   629,
     629,   629,   185,   222,   636,   224,   630,   629,   330,    82,
    3880,   230,   340,   636,   550,   550,  3342,  3343,  3344,   238,
    3449,  3347,   521,  4317,   636,  4319,  4320,   340,   636,   550,
     213,   539,   530,  3359,   253,   533,   371,   610,   536,   374,
     630,   274,    88,    47,   347,   161,   550,   628,   628,   362,
     477,   478,   628,   185,   628,   128,   142,   185,   192,   372,
     161,   619,   620,   621,   622,   623,   624,   625,   626,    82,
     399,   369,   402,   192,   572,   404,   411,    90,   192,  3310,
     241,   213,   580,  4377,  4048,   213,   192,   636,   307,   248,
     636,   404,  3986,    82,   222,   170,   224,   357,   401,   282,
     251,   114,  3333,  3429,   630,   251,   325,    96,  3434,   375,
    3539,   321,   114,  4414,   114,   498,   499,   500,   501,   502,
     503,   254,   636,  3449,   452,   198,   550,   254,   463,   464,
     368,   628,   515,   628,   205,   539,   628,   449,   388,   452,
     636,   372,   623,   472,   628,   628,   159,   136,   242,   222,
     282,   224,   242,   628,   282,   477,   478,   629,   244,   605,
     379,   474,   381,   493,   629,  3491,  3501,   636,   629,   629,
     389,   629,   623,   672,   357,   629,   629,  4131,   677,   226,
    4050,   254,  3508,  4072,  3613,   362,   269,   515,   629,   388,
     244,   636,  4146,   620,   621,   622,   623,   624,   625,   626,
     192,   530,   515,   577,   265,  4159,   629,   536,   630,   630,
      71,   251,   629,  3539,   251,   714,   628,   230,   362,   630,
     254,   254,   630,   630,   629,   357,   555,   628,   630,   357,
      82,   400,   731,   362,    19,   629,   362,   630,   457,  3565,
     628,   362,   572,   490,   330,   362,  3572,    47,   466,   629,
     628,   580,  3681,   628,   268,   628,   628,    47,   571,   629,
     468,   629,   605,   417,  3590,   203,   601,   256,   597,   148,
     261,   584,   629,   772,   773,   774,   775,   350,   351,   614,
     615,   616,   629,   356,   630,   784,   205,  3613,   476,   362,
     603,   628,   605,   251,   307,   514,   628,   619,   620,   621,
     622,   623,   624,   625,   626,   251,   630,   628,   128,  3540,
     128,   530,   325,   628,   398,   534,   629,   630,    55,   636,
     633,   634,    86,   144,   484,   629,   490,    19,    65,   402,
     461,  4285,   629,   629,   553,   348,    34,   630,  4302,   328,
     629,  4295,   629,   629,    81,   629,   629,    34,  3579,   357,
      60,   242,   571,   629,   629,  3681,    93,    94,    95,   629,
      34,   350,   351,   327,   353,   629,   865,   256,   412,   277,
      36,   369,   109,  3699,   241,   605,   628,   630,   629,   562,
      47,   636,   211,   327,   630,   417,  3712,  3713,   584,  3715,
    3716,   477,   478,    67,  4348,   584,   539,   470,   539,   628,
     628,   628,   628,   628,   304,   629,   628,   594,  3837,   594,
      14,   630,  4366,   628,  4368,   577,   128,  4311,   254,    19,
     254,  4375,   356,    34,   629,   170,   415,   630,   628,   456,
     562,   357,  4386,   630,   562,   327,  3762,    17,   174,   539,
     539,   539,   254,  4407,  4314,   533,   628,   584,   588,   629,
     629,   362,   118,   241,   584,  3781,  3782,   352,   508,   125,
     628,   135,   449,   605,  4418,  4419,   589,  3793,   170,  4423,
     357,   629,   369,   630,   138,   577,   628,  4441,   520,   628,
     628,   190,   602,   156,    31,   159,   190,   383,    61,   163,
     637,   629,   541,   629,   629,   137,   137,   159,   404,   572,
    3826,   514,    73,  3829,   628,   425,   602,   629,   192,    31,
      63,  3837,   178,  4383,   369,   504,   629,   530,    63,   185,
     630,   628,  1021,   197,   521,     5,   270,  3782,    47,    47,
     362,  3762,   362,   619,   620,   621,   622,   623,   624,   625,
     626,  3867,   241,   217,   369,   155,   628,   213,   214,   628,
     369,   136,   144,   634,   628,    47,    47,   231,   154,    47,
     577,   602,  3888,   132,   155,   225,   284,  3893,   634,   637,
     127,  3826,   150,   456,    47,   628,    47,  1076,  1077,    47,
     458,   629,   319,  4453,   254,   223,  1085,  1086,  1087,  1088,
    1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,   336,
      53,   630,   542,   634,   629,   279,  1105,  1106,   630,  1108,
     208,  1110,   155,   634,   630,  1114,   282,    47,  1117,  1118,
    1119,  1120,   629,  1122,  1123,  1124,   629,   301,    53,   630,
     439,   190,  1131,  1132,   190,  1134,  1135,  1136,  1137,  1138,
     190,  3967,  1141,  1142,  1143,  1144,  1145,  1146,  1147,  1148,
    1149,  1150,  1151,   604,   226,  1154,  1155,  4086,   542,  1158,
     357,   128,   628,  1162,   474,  1164,  1165,   191,   630,  3898,
    2262,  2054,  3319,  2435,  4000,   341,  4002,  3320,  4004,  1178,
    1179,   655,  3588,  3925,  4051,  4242,   352,  1186,  4243,   999,
     356,   357,  3586,  3590,  1193,  1194,  1195,  3780,  1197,  4441,
    4394,    46,  3933,   577,  4030,  1204,  1205,  1206,  2760,  1208,
    1209,  1210,  1211,  1212,  1815,  1214,  1215,  1216,  1217,  1218,
    1219,  1220,  1221,  3772,  3772,   462,  1225,  1226,  3772,   403,
    3772,  3772,  4404,  4059,  3772,  4282,  3772,  4124,   412,  3772,
    3772,  3772,  4282,  3772,  4236,  3772,  4150,  3772,  4149,  1039,
    4076,  1470,  1740,   427,  2012,  1480,  3930,  1472,  2915,  2738,
    4086,  3428,  3125,  4192,  1315,  4076,  4092,  4175,  2743,  3827,
    3431,   445,  4352,  4260,  4311,  1524,     6,  3986,   516,  3595,
     517,  2989,  2005,    13,  3244,    15,  2583,  2013,  3223,  2515,
    3232,  4279,  3880,  3041,  3738,  3301,    26,    27,   535,  3267,
    3550,  4072,  3539,  1302,  4008,  3173,    11,    11,  4109,  4108,
     484,   485,  1538,  3949,  3936,  3945,  2090,  3793,  3746,   630,
    2012,  3225,  1889,  2508,  1430,  3505,  1520,    57,  4059,  4258,
     598,  2321,    62,    63,  3224,  1807,   510,  2295,  2724,    69,
    2343,  1479,  2213,   968,  3120,  4171,   908,  3774,  4079,  4080,
    2125,  1826,    82,  1125,  3101,   529,  2122,  2398,   532,   533,
      90,  3191,  2702,  1362,  4207,  2212,  4192,  3852,  3706,  3317,
     100,  1370,  4208,   539,  3234,  1098,  2241,   543,  1446,   677,
     546,  4207,  4208,  3700,   114,  2805,  4383,  2504,  3681,  2348,
    2095,   557,  1298,  1328,  3434,  2289,   562,  2325,   128,   565,
    3139,   131,  3138,  3201,  4171,   588,   668,   581,   138,   139,
    1878,  1547,  1759,   576,  1879,   145,   714,  3242,  1382,  1410,
    3123,  1334,  4304,   153,  4199,  4350,  4270,   157,  4446,   159,
    4452,  3541,  4258,   731,  3144,  2792,  1831,  3460,  3181,  1788,
     568,  3689,  1362,  1352,  3816,   890,  1290,  3822,  2712,   569,
     512,   512,  4183,  4184,  1529,   621,   622,    -1,   188,   895,
     655,  4287,   655,    -1,   655,   227,    -1,    -1,  4294,    -1,
      -1,    -1,    -1,  1472,    -1,    -1,    -1,   775,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    12,    13,    -1,    -1,    -1,
      -1,    -1,   222,    -1,   224,    -1,    -1,    -1,   228,    -1,
     230,    -1,    -1,    -1,    -1,    -1,  4435,    -1,   238,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   253,    -1,   287,   288,   289,   290,   291,
     292,    -1,   294,   295,   296,   297,   298,   299,   300,  4365,
     302,   303,    -1,    -1,  4370,  4276,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  1560,    -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,
      -1,    34,    -1,    -1,    -1,    -1,   103,   307,    -1,    -1,
      -1,  4407,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4416,    -1,    -1,    -1,    -1,   325,    -1,    -1,    -1,   329,
      -1,    -1,    -1,    -1,    67,   132,    -1,    -1,    -1,  4435,
      -1,    -1,    -1,  4439,    -1,  4441,    -1,    -1,   145,    -1,
    4446,    -1,    -1,    -1,    -1,    -1,  4452,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,    -1,
      -1,   168,   372,    -1,   171,    -1,    -1,    -1,    -1,   379,
      -1,   381,    -1,    -1,    -1,   182,    -1,    -1,   388,   389,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   429,   430,    -1,
      -1,    -1,   135,  1672,  1673,  1674,   203,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1686,    -1,    -1,
     420,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,
     163,    -1,    -1,   230,   434,   435,   436,   437,    -1,    -1,
     237,    -1,    -1,  1712,    -1,    -1,    -1,    -1,    -1,  1718,
      -1,    -1,  1721,  1021,  1723,    -1,    -1,   457,    -1,    -1,
    1729,    -1,  1731,  1732,   197,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     277,    -1,    -1,    -1,   217,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   231,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1076,  1077,
      -1,    -1,    -1,    -1,   514,    -1,    -1,  1085,  1086,    -1,
      -1,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,
     530,    13,    -1,  1802,   534,    -1,    -1,  1105,  1106,    -1,
    1108,    -1,  1110,    -1,    -1,    -1,   279,    -1,    -1,  1117,
    1118,  1119,  1120,   553,    -1,  1123,    -1,    -1,   558,    -1,
      -1,    -1,    -1,  1131,  1132,    -1,  1134,  1135,   301,    -1,
      -1,   571,    -1,  1141,  1142,  1143,    -1,    -1,  1146,  1147,
    1148,  1149,  1150,  1151,    -1,    -1,  1154,  1155,    -1,    -1,
    1158,    -1,    -1,    -1,  1162,    -1,  1164,  1165,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   405,    -1,
    1178,  1179,   409,    -1,    -1,    -1,    -1,    -1,  1186,    -1,
      -1,   103,    -1,    -1,    -1,  1193,  1194,  1195,   425,    -1,
      -1,    -1,    -1,    -1,   634,    -1,   433,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   441,    -1,    -1,    -1,    -1,    -1,
     132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1226,    -1,
      -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,   466,
     403,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   412,
      -1,    -1,   479,   480,    -1,    -1,   168,    -1,    -1,   171,
      -1,    -1,    -1,    13,   427,    15,    -1,    -1,    -1,    -1,
     182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    31,   445,    -1,    -1,    35,    -1,    -1,    -1,    -1,
      -1,   203,    -1,    -1,    -1,    -1,    -1,   524,    -1,    49,
      50,    -1,    -1,    -1,  1302,    -1,  2005,    57,    -1,    -1,
      -1,    -1,    62,    63,    -1,    -1,    -1,    -1,   230,    -1,
      -1,   484,   485,    -1,    -1,   237,    -1,    -1,   555,    -1,
      -1,    -1,    -1,    -1,    84,    -1,  2035,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   510,    -1,    -1,
     577,    -1,   579,   103,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1362,   277,    -1,    -1,    -1,   532,
      -1,    -1,  1370,    -1,   124,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   132,   133,   134,    -1,    -1,    -1,    -1,  2088,
      -1,    -1,    -1,    -1,   144,   145,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2104,    -1,   157,    -1,  2108,
      -1,    -1,    -1,    -1,  2113,  2114,    -1,    -1,   581,    -1,
      -1,   171,    -1,  2122,  2123,    -1,  2125,  2126,  2127,  2128,
      -1,  2130,    -1,    -1,  2133,    -1,    -1,   187,    -1,    -1,
      -1,    -1,    -1,    -1,  2143,    -1,  2145,  2146,    -1,  2148,
    2149,  2150,  2151,   203,  2153,    -1,    -1,  2156,   208,    -1,
      -1,    -1,   212,    -1,    -1,    -1,  2165,    -1,    -1,    -1,
      -1,    -1,    -1,  2172,    -1,  2174,    -1,  2176,  2177,  2178,
    2179,    -1,    -1,    -1,  2183,  2184,  2185,   237,    -1,   239,
    2189,  2190,  2191,   405,  2193,    -1,  2195,    -1,  2197,    -1,
    2199,    -1,  2201,    -1,    -1,   255,    -1,  2206,    -1,    -1,
      -1,    -1,    -1,   425,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   433,    -1,   273,    -1,  2224,    -1,   277,    -1,   441,
      -1,    -1,  2231,    -1,    -1,  2234,    -1,    -1,    -1,    -1,
      -1,  2240,    -1,    -1,  2243,    -1,    -1,    -1,  2247,    -1,
      -1,    -1,    -1,    -1,   466,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1560,    -1,    26,    27,    -1,   479,   480,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,    60,    -1,
      62,    -1,    -1,    -1,  2303,    -1,    -1,    -1,    -1,    71,
      -1,    -1,   524,    -1,    -1,    -1,    -1,   367,    -1,    -1,
      82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,   384,    -1,    -1,    -1,   388,    -1,
      -1,    -1,    -1,   555,    -1,    -1,    -1,    -1,    -1,   399,
      -1,    -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     410,    -1,    -1,    -1,    -1,   577,   128,   579,    -1,   131,
      -1,    -1,    -1,    -1,  1672,  1673,  1674,    -1,    -1,    -1,
      -1,    -1,   432,    -1,    -1,   435,    -1,   437,    -1,    -1,
     440,    -1,    -1,   443,   444,    -1,    -1,   159,    -1,    -1,
      -1,   451,    -1,   453,    -1,    -1,    -1,    -1,    -1,    -1,
     460,    -1,    -1,    -1,  1712,    -1,   466,    -1,    -1,  2418,
      -1,    -1,    -1,  1721,   474,  1723,    -1,    -1,    -1,   479,
      -1,   481,    -1,    -1,   484,    -1,    -1,  2436,  2437,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   509,
     222,    -1,   224,   513,    -1,    -1,    -1,    -1,   230,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1802,   267,    -1,    -1,   558,  2508,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     570,    -1,    -1,    -1,   574,    -1,    -1,   577,    -1,    -1,
      -1,    -1,    -1,   583,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2553,  2554,    -1,    -1,    -1,    -1,
      -1,    -1,   612,   325,    -1,    -1,    -1,    -1,   618,    12,
      13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   628,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2587,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  2604,    -1,    -1,    -1,  2608,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,    -1,   381,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   389,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2638,
    2639,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2658,
     103,    -1,    -1,    -1,    13,    -1,    15,    -1,  2667,    -1,
    2669,    -1,  2671,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    35,    -1,    -1,   132,
      -1,    -1,  2691,    -1,    -1,   457,    -1,  2696,    -1,    -1,
      49,    50,   145,    -1,    -1,    -1,    -1,    -1,    57,    -1,
      -1,    -1,    -1,    62,    63,    -1,    -1,    -1,    -1,    -1,
      -1,  2720,    -1,    -1,    -1,   168,    -1,    -1,   171,    -1,
      -1,    -1,    -1,    -1,    -1,    84,    -1,  2035,    -1,   182,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   514,    -1,   103,    -1,    -1,    -1,    -1,    -1,
     203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   530,    -1,
      -1,    -1,   534,    -1,    -1,   124,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   132,   133,   134,  2785,   230,    -1,    -1,
    2789,   553,    -1,    -1,   237,   144,   145,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2104,    -1,    -1,   571,
    2108,    -1,    -1,    -1,    -1,  2113,  2114,    -1,    -1,    -1,
      -1,    -1,   171,    -1,  2122,  2123,    -1,  2125,    -1,  2127,
    2128,    -1,  2130,    -1,   277,    -1,    -1,  2836,   187,    -1,
      -1,    -1,    -1,    -1,    -1,  2143,    -1,  2145,    -1,    -1,
    2148,  2149,  2150,  2151,   203,  2153,    -1,    -1,    -1,   208,
      -1,    -1,    -1,   212,    -1,    -1,   628,  2165,    -1,    -1,
      -1,    -1,    -1,    -1,  2172,    -1,  2174,    -1,  2176,  2177,
    2178,    -1,    -1,    -1,    -1,  2183,  2184,  2185,   237,    -1,
     239,  2189,  2190,  2191,    -1,  2193,    -1,  2195,    -1,  2197,
      -1,  2199,    -1,  2201,    -1,    -1,   255,    -1,  2206,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   273,    -1,  2224,    -1,   277,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  2240,    -1,    -1,  2243,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2957,  2958,
      -1,    -1,   405,    -1,    -1,    -1,   409,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   425,  2982,    -1,    -1,    -1,    -1,    -1,    -1,
     433,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   441,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3010,    -1,    -1,    -1,    -1,    -1,    -1,   367,    -1,
      -1,    -1,    -1,   466,  3023,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   384,   479,   480,    -1,   388,
      -1,    -1,    -1,   119,   120,   121,   122,   123,    -1,    -1,
     399,    -1,    -1,    -1,    -1,    -1,    -1,  3056,  3057,    -1,
    3059,   410,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3068,
      -1,    -1,    -1,    -1,  3073,    -1,    -1,  3076,    -1,  3078,
    3079,   524,    -1,   432,    -1,    -1,   435,    -1,   437,    -1,
      -1,   440,    -1,    -1,   443,   444,    -1,    -1,    -1,    -1,
    3099,    -1,   451,    -1,   453,    -1,    -1,    -1,    -1,    -1,
      -1,   460,   555,    -1,    -1,  3114,    -1,   466,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   474,    -1,    -1,    -1,    -1,
     479,    -1,   481,    -1,   577,   484,   579,    -1,    -1,  3138,
      -1,    -1,   218,   219,   220,   221,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     509,    -1,    -1,    -1,   513,    -1,    -1,    -1,    -1,  3168,
      -1,    33,    34,    -1,    -1,    -1,    -1,    39,    -1,    41,
      -1,    43,    44,  3182,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    -1,
      -1,    -1,    -1,    -1,  3203,    -1,    -1,    -1,    -1,   558,
      -1,    -1,    -1,  3212,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   570,    -1,    -1,    -1,   574,    -1,    -1,   577,    -1,
      -1,    -1,    -1,    -1,   583,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   320,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   115,    -1,   331,   118,    24,    -1,    -1,
      -1,    -1,    -1,   612,   126,    -1,    -1,    34,    35,   618,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   628,
      -1,   143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    59,    60,    -1,  3294,    -1,    -1,   160,    -1,
      67,    -1,    -1,    -1,    -1,    72,  2604,    -1,    -1,    -1,
    2608,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   184,    -1,   186,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    99,    -1,   101,   411,   103,   199,   200,    -1,
    2638,  2639,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2658,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2667,
      -1,  2669,    -1,  2671,    -1,    -1,    -1,    -1,    -1,    -1,
     242,    -1,    -1,    -1,    -1,    -1,    -1,   463,   464,    -1,
      -1,   158,   159,    -1,    -1,    -1,    -1,   164,    -1,    -1,
     167,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   271,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   280,   281,
      -1,   283,  2720,    -1,    -1,    -1,   193,    -1,   195,    -1,
      -1,    -1,    -1,    -1,    -1,   202,  3435,   204,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   313,   314,   315,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   229,   230,   231,    -1,    -1,    -1,    -1,    -1,
     332,   333,   334,    -1,    -1,  3474,  3475,   339,    -1,    -1,
     342,    -1,    -1,    -1,  3483,   252,    -1,  2785,    -1,    -1,
      -1,  2789,    -1,    -1,    -1,    -1,   358,   359,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   274,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   601,    -1,    -1,    -1,    -1,
      -1,    -1,   394,   395,   301,    -1,    -1,    -1,  2836,   615,
     616,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3550,    -1,    -1,    -1,    -1,    -1,   419,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3595,    -1,    -1,   366,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   470,    -1,
      -1,    -1,   474,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   486,   392,    -1,    -1,  3627,    -1,
      -1,    -1,  3631,    -1,    -1,    -1,   403,   404,    -1,    -1,
     407,   408,    -1,    -1,    -1,    -1,    -1,     6,    -1,    -1,
      -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    -1,  2957,
    2958,   428,    -1,  3662,    -1,    -1,    -1,    26,    27,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3676,   540,    -1,
      -1,   543,    -1,    -1,   546,   547,   548,   549,    -1,    -1,
    3689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
      -1,    -1,    -1,    62,   471,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   484,    -1,    -1,
      -1,    -1,    -1,    82,    -1,  3023,    -1,    -1,   590,   591,
      -1,    90,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   100,    -1,   510,    -1,    -1,    -1,   514,    -1,    -1,
      -1,    -1,    -1,    -1,   616,   114,    -1,    -1,  3056,  3057,
      -1,    -1,    -1,    -1,    -1,   532,   533,    -1,    -1,   128,
    3068,    -1,   131,  3772,    -1,  3073,    -1,    -1,  3076,   138,
    3078,  3079,    -1,    -1,    -1,    -1,   145,    -1,    -1,    -1,
      -1,    -1,    -1,  3792,   153,    -1,    -1,  3796,  3797,    -1,
     159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   581,    -1,  3114,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   592,    -1,    -1,  3827,   188,
      -1,    -1,    -1,   600,    -1,    -1,  3835,    -1,    -1,    -1,
    3138,    -1,    -1,    -1,    -1,  3844,    -1,  3846,    -1,    -1,
      -1,    -1,    -1,    -1,    26,    27,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   222,    -1,   224,    -1,    -1,    -1,    -1,
      -1,   230,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   238,
      -1,    -1,    -1,    -1,  3182,    -1,  3885,    59,    60,    -1,
      62,    -1,  3891,  3892,   253,    -1,    -1,    -1,    -1,    71,
      -1,    -1,    -1,    -1,    -1,  3203,    -1,    -1,    -1,    -1,
      82,    -1,    -1,    -1,  3212,    -1,    -1,    -1,    90,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3936,    -1,    -1,
      -1,    -1,   114,    -1,    -1,    -1,  3945,    -1,   307,    -1,
    3949,    -1,    -1,    -1,    -1,  3954,   128,    -1,    -1,   131,
      -1,    -1,    -1,    -1,    -1,    -1,   325,    -1,    -1,    -1,
     329,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,
      -1,    -1,  3991,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  4010,    -1,   372,    -1,    -1,    -1,    -1,    -1,    -1,
     379,    -1,   381,    -1,  4023,    -1,  4025,    -1,    -1,    -1,
     389,    -1,    -1,    -1,    -1,    -1,  4035,    -1,  4037,  4038,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     222,    -1,   224,    -1,    -1,    -1,    -1,    -1,   230,    -1,
      -1,    -1,    -1,  4062,    -1,    -1,   238,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   435,    -1,    -1,    -1,
      -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   457,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4106,    -1,  4108,
    4109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    4129,    -1,  4131,    -1,    -1,   307,    -1,  3435,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4146,  4147,    -1,
      -1,    -1,    -1,   325,    -1,   514,    -1,    -1,    -1,    -1,
    4159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   530,    -1,  4172,    -1,   534,  3474,  3475,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3483,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   553,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,    -1,   381,
      -1,    -1,   571,    -1,    -1,    -1,    -1,   389,    -1,    -1,
      -1,    -1,    -1,  4222,  4223,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4235,  4236,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  4252,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   457,  4285,    -1,    -1,    -1,
      -1,    -1,    -1,  4292,    -1,    -1,  4295,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3627,
    4329,    -1,    -1,  3631,    -1,    -1,    -1,  4336,    -1,  4338,
      -1,    -1,   514,    -1,    -1,    -1,    -1,    -1,    -1,  4348,
      -1,    -1,    -1,  4352,    -1,    -1,  4355,    -1,   530,    -1,
      -1,    -1,   534,    -1,  3662,  4364,    -1,  4366,    -1,  4368,
      -1,    -1,    -1,    -1,    -1,    -1,  4375,    -1,  3676,    -1,
      -1,   553,    -1,    -1,    -1,    -1,    -1,  4386,    -1,    -1,
      -1,  3689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   571,
      -1,    -1,    -1,  4402,  4403,    -1,    -1,    -1,    -1,  4408,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4418,
    4419,    -1,    -1,    -1,  4423,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4455,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3835,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3844,    -1,  3846,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3885,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3954,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3991,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  4023,    -1,  4025,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4035,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  4129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4147,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  4172,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
      -1,    -1,    -1,    18,  4222,    -1,    21,    -1,    23,    24,
      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    34,
      35,    36,    37,    38,    39,    40,    -1,    42,    43,    44,
      45,    46,    -1,    48,    49,    -1,    -1,    52,    53,    54,
      55,    56,    -1,    58,    59,    60,    61,    62,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
      85,    86,    87,    88,  4292,    90,    91,    -1,    93,    94,
      95,    96,    97,    -1,    99,   100,   101,   102,    -1,    -1,
     105,   106,   107,    -1,   109,   110,   111,    -1,   113,   114,
     115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,
     125,  4329,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
      -1,    -1,   147,   148,   149,    -1,    -1,  4355,   153,    -1,
     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,   170,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,    -1,   182,   183,   184,
     185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
    4408,   206,    -1,   208,   209,   210,    -1,   212,   213,   214,
      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,    -1,    -1,  4455,   253,    -1,
      -1,   256,   257,   258,    -1,   260,   261,    -1,   263,   264,
     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,   326,   327,    -1,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,   341,   342,   343,    -1,
      -1,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      -1,   356,   357,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,    -1,   399,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
      -1,   436,   437,   438,   439,   440,   441,    -1,   443,    -1,
     445,   446,    -1,   448,   449,    -1,    -1,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,   509,   510,   511,   512,   513,   514,
      -1,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,   539,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,   551,   552,   553,   554,
      -1,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
     585,   586,   587,   588,   589,    -1,    -1,   592,   593,    -1,
     595,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
      -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,
      -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,
     635,   636,     5,    -1,     7,     8,     9,    10,    11,    12,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    36,    37,    38,    39,    40,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      53,    54,    55,    56,    -1,    58,    59,    60,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,   100,   101,   102,
      -1,    -1,   105,   106,   107,    -1,   109,   110,   111,    -1,
     113,   114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,   212,
     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
     263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,   326,   327,    -1,   329,   330,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,   341,   342,
     343,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,   354,    -1,   356,   357,    -1,   359,   360,   361,   362,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,   439,   440,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,   452,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,   511,   512,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   525,   526,   527,   528,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,   556,   557,   558,   559,   560,   561,   562,
     563,   564,   565,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,   585,   586,   587,   588,   589,    -1,    -1,   592,
     593,    -1,   595,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,    -1,   616,    -1,    -1,    -1,    -1,   621,   622,
      -1,    -1,    -1,    -1,   627,   628,    -1,    -1,   631,   632,
      -1,    -1,   635,   636,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
      -1,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
      91,    -1,    93,    94,    95,    96,    97,    -1,    99,   100,
     101,   102,    -1,    -1,   105,   106,   107,    -1,   109,   110,
     111,    -1,   113,   114,   115,   116,   117,   118,    -1,    -1,
      -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,
     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
      -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,
     191,   192,   193,    -1,   195,    -1,   197,   198,   199,   200,
     201,   202,    -1,   204,    -1,   206,    -1,   208,   209,   210,
      -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,    -1,
     231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,
      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
     261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,
     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
      -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
     321,    -1,    -1,   324,   325,   326,   327,    -1,   329,   330,
     331,   332,   333,   334,   335,   336,   337,   338,   339,    -1,
     341,   342,   343,    -1,    -1,   346,   347,   348,   349,   350,
     351,   352,   353,   354,    -1,   356,   357,    -1,   359,   360,
     361,    -1,   363,   364,   365,   366,    -1,   368,   369,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
      -1,   382,   383,    -1,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,    -1,   399,   400,
     401,    -1,   403,    -1,   405,   406,   407,   408,   409,    -1,
     411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,
     421,   422,   423,   424,    -1,    -1,   427,   428,   429,   430,
     431,    -1,   433,   434,    -1,   436,   437,   438,   439,   440,
     441,    -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,
      -1,   452,   453,   454,   455,   456,   457,   458,   459,   460,
     461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,
     471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,
      -1,   482,   483,   484,   485,    -1,   487,   488,   489,   490,
     491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,
      -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,
     511,   512,   513,   514,    -1,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
      -1,   532,    -1,   534,   535,   536,   537,    -1,   539,   540,
     541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,
      -1,   552,   553,   554,    -1,   556,   557,   558,   559,   560,
     561,   562,   563,   564,   565,   566,   567,    -1,   569,   570,
      -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,
     581,   582,    -1,    -1,   585,   586,   587,   588,   589,    -1,
      -1,   592,   593,    -1,   595,   596,   597,   598,   599,   600,
     601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,
     611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,
     621,   622,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,
     631,   632,    -1,    -1,   635,   636,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
      29,    -1,    31,    -1,    -1,    34,    35,    36,    37,    38,
      39,    40,    -1,    42,    43,    44,    -1,    46,    -1,    48,
      49,    -1,    -1,    52,    53,    54,    55,    56,    -1,    58,
      59,    60,    61,    62,    -1,    64,    65,    66,    67,    68,
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
      99,   100,   101,   102,    -1,    -1,   105,   106,   107,    -1,
     109,   110,   111,    -1,   113,   114,   115,   116,   117,   118,
      -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,
     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
     169,   170,   171,   172,    -1,   174,   175,   176,   177,   178,
     179,   180,    -1,   182,   183,   184,   185,    -1,   187,    -1,
      -1,    -1,   191,   192,   193,    -1,   195,    -1,   197,   198,
     199,   200,   201,   202,    -1,   204,    -1,   206,    -1,   208,
     209,   210,    -1,   212,   213,   214,    -1,   216,   217,    -1,
      -1,    -1,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,
     239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
      -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,
      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
     279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
     319,   320,   321,    -1,    -1,   324,   325,   326,   327,    -1,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,    -1,   341,   342,   343,    -1,    -1,   346,   347,   348,
     349,   350,   351,   352,   353,   354,    -1,   356,   357,    -1,
     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
     379,   380,    -1,   382,   383,    -1,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
     439,   440,   441,    -1,   443,    -1,   445,   446,    -1,   448,
     449,    -1,    -1,   452,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
     509,   510,   511,   512,   513,   514,    -1,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
     539,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
      -1,    -1,    -1,   552,   553,   554,    -1,   556,   557,   558,
     559,   560,   561,   562,   563,   564,   565,   566,   567,    -1,
     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
      -1,   580,   581,   582,    -1,    -1,   585,   586,   587,   588,
     589,    -1,    -1,   592,   593,    -1,   595,   596,   597,   598,
     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
      -1,    -1,   621,   622,    -1,    -1,    -1,    -1,   627,   628,
      -1,    -1,   631,   632,    -1,    -1,   635,   636,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
      27,    28,    29,    -1,    31,    -1,    -1,    34,    35,    36,
      37,    38,    39,    40,    -1,    42,    43,    44,    -1,    46,
      -1,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
      -1,    58,    59,    60,    61,    62,    -1,    64,    65,    66,
      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
      97,    -1,    99,   100,   101,   102,    -1,    -1,   105,   106,
     107,    -1,   109,   110,   111,    -1,   113,   114,   115,   116,
     117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,
      -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
     167,   168,   169,   170,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,    -1,   182,   183,   184,   185,    -1,
     187,    -1,    -1,    -1,   191,   192,   193,    -1,   195,    -1,
     197,   198,   199,   200,   201,   202,    -1,   204,    -1,   206,
      -1,   208,   209,   210,    -1,   212,   213,   214,    -1,   216,
     217,    -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
     237,   238,   239,   240,    -1,    -1,   243,    -1,   245,   246,
      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
     257,   258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,
      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
      -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,    -1,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,
     317,   318,   319,   320,   321,    -1,    -1,   324,   325,   326,
     327,    -1,   329,   330,   331,   332,   333,   334,   335,   336,
     337,   338,   339,    -1,   341,   342,   343,    -1,    -1,   346,
     347,   348,   349,   350,   351,   352,   353,   354,    -1,   356,
     357,    -1,   359,   360,   361,    -1,   363,   364,   365,   366,
      -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   378,   379,   380,    -1,   382,   383,    -1,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     397,    -1,   399,   400,   401,    -1,   403,    -1,   405,   406,
     407,   408,   409,    -1,   411,   412,   413,    -1,    -1,   416,
      -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,
     427,   428,   429,   430,   431,    -1,   433,   434,    -1,   436,
     437,   438,   439,   440,   441,    -1,   443,    -1,   445,   446,
      -1,   448,   449,    -1,    -1,   452,   453,   454,   455,   456,
     457,   458,   459,   460,   461,   462,    -1,   464,   465,    -1,
      -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,
      -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,
     487,   488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,
      -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,
      -1,   508,   509,   510,   511,   512,   513,   514,    -1,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
     527,   528,   529,   530,    -1,   532,    -1,   534,   535,   536,
     537,    -1,   539,   540,   541,    -1,   543,   544,   545,   546,
      -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,   556,
     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,
      -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,   586,
     587,   588,   589,    -1,    -1,   592,   593,    -1,   595,   596,
     597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,
      -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,   616,
      -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,    -1,
     627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,   636,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    34,
      35,    36,    37,    38,    39,    40,    -1,    42,    43,    44,
      -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,    54,
      55,    56,    -1,    58,    59,    60,    61,    62,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
      95,    96,    97,    -1,    99,   100,   101,   102,    -1,    -1,
     105,   106,   107,    -1,   109,   110,   111,    -1,   113,   114,
     115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,
     125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,   170,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,    -1,   182,   183,   184,
     185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
      -1,   206,    -1,   208,   209,   210,    -1,   212,   213,   214,
      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
      -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,   264,
     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,   326,   327,    -1,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,   341,   342,   343,    -1,
      -1,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      -1,   356,   357,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,    -1,   399,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
      -1,   436,   437,   438,   439,   440,   441,    -1,   443,    -1,
     445,   446,    -1,   448,   449,    -1,    -1,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,   509,   510,   511,   512,   513,   514,
      -1,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,   539,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
      -1,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
     585,   586,   587,   588,   589,    -1,    -1,   592,   593,    -1,
     595,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
      -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,
      -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,
     635,   636,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    36,    37,    38,    39,    40,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      53,    54,    55,    56,    -1,    58,    59,    60,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,   100,   101,   102,
      -1,    -1,   105,   106,   107,    -1,   109,   110,   111,    -1,
     113,   114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,   212,
     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
     263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,   326,   327,    -1,   329,   330,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,   341,   342,
     343,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,   354,    -1,   356,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,   439,   440,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,   452,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,   511,   512,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   525,   526,   527,   528,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,   556,   557,   558,   559,   560,   561,   562,
     563,   564,   565,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,   585,   586,   587,   588,   589,    -1,    -1,   592,
     593,    -1,   595,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,    -1,   616,    -1,    -1,    -1,    -1,   621,   622,
      -1,    -1,    -1,    -1,   627,   628,    -1,    -1,   631,   632,
      -1,    -1,   635,   636,     5,    -1,     7,     8,     9,    10,
      11,    12,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
      -1,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
      91,    -1,    93,    94,    95,    96,    97,    -1,    99,   100,
     101,   102,    -1,    -1,   105,   106,   107,    -1,   109,   110,
     111,    -1,   113,   114,   115,   116,   117,   118,    -1,    -1,
      -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,
     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
      -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,
     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
     201,   202,    -1,   204,    -1,   206,    -1,   208,   209,   210,
      -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,    -1,
     231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,
      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
     261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,
     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
      -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
     321,    -1,    -1,   324,   325,   326,   327,    -1,   329,   330,
     331,   332,   333,   334,   335,   336,   337,   338,   339,    -1,
     341,   342,   343,    -1,    -1,   346,   347,   348,   349,   350,
      -1,   352,   353,   354,    -1,   356,   357,    -1,   359,   360,
     361,    -1,   363,   364,   365,   366,    -1,   368,   369,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
      -1,   382,   383,    -1,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,    -1,   399,   400,
     401,    -1,   403,    -1,   405,   406,   407,   408,   409,    -1,
     411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,
     421,   422,   423,   424,    -1,    -1,   427,   428,   429,   430,
     431,    -1,   433,   434,    -1,   436,   437,   438,   439,   440,
     441,    -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,
      -1,   452,   453,   454,   455,   456,   457,   458,   459,   460,
     461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,
     471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,
      -1,   482,   483,   484,   485,    -1,   487,   488,   489,   490,
     491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,
      -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,
     511,   512,   513,   514,    -1,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
      -1,   532,    -1,   534,   535,   536,   537,    -1,   539,   540,
     541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,
      -1,   552,   553,   554,    -1,   556,   557,   558,   559,   560,
     561,   562,   563,   564,   565,   566,   567,    -1,   569,   570,
      -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,
     581,   582,    -1,    -1,   585,   586,   587,   588,   589,    -1,
      -1,   592,   593,    -1,   595,   596,   597,   598,   599,   600,
     601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,
     611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,
     621,   622,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,
     631,   632,    -1,    -1,   635,   636,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
      29,    -1,    31,    -1,    -1,    34,    35,    36,    37,    38,
      39,    40,    -1,    42,    43,    44,    -1,    46,    -1,    48,
      49,    -1,    -1,    52,    53,    54,    55,    56,    -1,    58,
      59,    60,    61,    62,    -1,    64,    65,    66,    67,    68,
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
      99,   100,   101,   102,    -1,    -1,   105,   106,   107,    -1,
     109,   110,   111,    -1,   113,   114,   115,   116,   117,   118,
      -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,
     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
     169,   170,   171,   172,    -1,   174,   175,   176,   177,   178,
     179,   180,    -1,   182,   183,   184,   185,    -1,   187,    -1,
      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
     199,   200,   201,   202,    -1,   204,    -1,   206,    -1,   208,
     209,   210,    -1,   212,   213,   214,    -1,   216,   217,    -1,
      -1,    -1,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,
     239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
      -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,
      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
     279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
     319,   320,   321,    -1,    -1,   324,   325,   326,   327,    -1,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,    -1,   341,   342,   343,    -1,    -1,   346,   347,   348,
     349,   350,   351,   352,   353,   354,    -1,   356,   357,    -1,
     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
     379,   380,    -1,   382,   383,    -1,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
     439,   440,   441,    -1,   443,    -1,   445,   446,    -1,   448,
     449,    -1,    -1,   452,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
     509,   510,   511,   512,   513,   514,    -1,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
     539,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
      -1,    -1,    -1,   552,   553,   554,    -1,   556,   557,   558,
     559,   560,   561,   562,   563,   564,   565,   566,   567,    -1,
     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
      -1,   580,   581,   582,    -1,    -1,   585,   586,   587,   588,
     589,    -1,    -1,   592,   593,    -1,   595,   596,   597,   598,
     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
      -1,    -1,   621,   622,    -1,    -1,    -1,    -1,   627,   628,
      -1,    -1,   631,   632,    -1,    -1,   635,   636,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
      27,    28,    29,    -1,    31,    -1,    -1,    34,    35,    36,
      37,    38,    39,    40,    -1,    42,    43,    44,    -1,    46,
      -1,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
      -1,    58,    59,    60,    61,    62,    -1,    64,    65,    66,
      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
      97,    -1,    99,   100,   101,   102,    -1,    -1,   105,   106,
     107,    -1,   109,   110,   111,    -1,   113,   114,   115,   116,
     117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,
      -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
     167,   168,   169,   170,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,    -1,   182,   183,   184,   185,    -1,
     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
     197,   198,   199,   200,   201,   202,    -1,   204,    -1,   206,
      -1,   208,   209,   210,    -1,   212,   213,   214,    -1,   216,
     217,    -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
     237,   238,   239,   240,    -1,    -1,   243,    -1,   245,   246,
      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
     257,   258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,
      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
      -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,    -1,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,
     317,   318,   319,   320,   321,    -1,    -1,   324,   325,   326,
     327,    -1,   329,   330,   331,   332,   333,   334,   335,   336,
     337,   338,   339,    -1,   341,   342,   343,    -1,    -1,   346,
     347,   348,   349,   350,   351,   352,   353,   354,    -1,   356,
     357,    -1,   359,   360,   361,    -1,   363,   364,   365,   366,
      -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   378,   379,   380,    -1,   382,   383,    -1,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     397,    -1,   399,   400,   401,    -1,   403,    -1,   405,   406,
     407,   408,   409,    -1,   411,   412,   413,    -1,    -1,   416,
      -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,
     427,   428,   429,   430,   431,    -1,   433,   434,    -1,   436,
     437,   438,   439,   440,   441,    -1,   443,    -1,   445,   446,
      -1,   448,   449,    -1,    -1,   452,   453,   454,   455,   456,
     457,   458,   459,   460,   461,   462,    -1,   464,   465,    -1,
      -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,
      -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,
     487,   488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,
      -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,
      -1,   508,   509,   510,   511,   512,   513,   514,    -1,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
     527,   528,   529,   530,    -1,   532,    -1,   534,   535,   536,
     537,    -1,   539,   540,   541,    -1,   543,   544,   545,   546,
      -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,   556,
     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,
      -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,   586,
     587,   588,   589,    -1,    -1,   592,   593,    -1,   595,   596,
     597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,
      -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,   616,
      -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,    -1,
     627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,   636,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    34,
      35,    36,    37,    38,    39,    40,    -1,    42,    43,    44,
      -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,    54,
      55,    56,    -1,    58,    59,    60,    61,    62,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
      95,    96,    97,    -1,    99,   100,   101,   102,    -1,    -1,
     105,   106,   107,    -1,   109,   110,   111,    -1,   113,   114,
     115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,
     125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,   170,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,    -1,   182,   183,   184,
     185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
      -1,   206,    -1,   208,   209,   210,    -1,   212,   213,   214,
      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
      -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,   264,
     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,   326,   327,    -1,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,   341,   342,   343,    -1,
      -1,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      -1,   356,   357,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,    -1,   399,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
      -1,   436,   437,   438,   439,   440,   441,    -1,   443,    -1,
     445,   446,    -1,   448,   449,    -1,    -1,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,   509,   510,   511,   512,   513,   514,
      -1,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,   539,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
      -1,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
     585,   586,   587,   588,   589,    -1,    -1,   592,   593,    -1,
     595,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
      -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,
      -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,
     635,   636,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    36,    37,    38,    39,    40,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      53,    54,    55,    56,    -1,    58,    59,    60,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,   100,   101,   102,
      -1,    -1,   105,   106,   107,    -1,   109,   110,   111,    -1,
     113,   114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,   172,
      -1,   174,   175,   176,   177,   178,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,   212,
     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
     263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,   304,   305,   306,   307,   308,   309,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,   326,   327,    -1,   329,   330,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,   341,   342,
     343,    -1,    -1,   346,   347,   348,   349,   350,   351,   352,
     353,   354,    -1,   356,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   397,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,   439,   440,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,   452,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,   511,   512,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,   522,
     523,   524,   525,   526,   527,   528,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,   556,   557,   558,   559,   560,   561,   562,
     563,   564,   565,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,   585,   586,   587,   588,   589,    -1,    -1,   592,
     593,    -1,   595,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,    -1,   616,    -1,    -1,    -1,    -1,   621,   622,
      -1,    -1,    -1,    -1,   627,   628,    -1,    -1,   631,   632,
      -1,    -1,   635,   636,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
      -1,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
      91,    -1,    93,    94,    95,    96,    97,    -1,    99,   100,
     101,   102,    -1,    -1,   105,   106,   107,    -1,   109,   110,
     111,    -1,   113,   114,   115,   116,   117,   118,    -1,    -1,
      -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,
     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
      -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,
     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
     201,   202,    -1,   204,    -1,   206,    -1,   208,   209,   210,
      -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,
     221,   222,   223,   224,   225,    -1,   227,   228,   229,    -1,
     231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,
      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
     261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,
     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
      -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     311,   312,    -1,    -1,    -1,   316,   317,   318,   319,   320,
     321,    -1,    -1,   324,   325,   326,   327,    -1,   329,   330,
     331,   332,   333,   334,   335,   336,   337,   338,   339,    -1,
     341,   342,   343,    -1,    -1,   346,   347,   348,   349,   350,
      -1,   352,   353,   354,    -1,   356,   357,    -1,   359,   360,
     361,    -1,   363,   364,   365,   366,    -1,   368,   369,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
      -1,   382,   383,    -1,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,   397,    -1,   399,   400,
     401,    -1,   403,    -1,   405,   406,   407,   408,   409,    -1,
     411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,
     421,   422,   423,   424,    -1,    -1,   427,   428,   429,   430,
     431,    -1,   433,   434,    -1,   436,   437,   438,   439,   440,
     441,    -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,
      -1,   452,   453,   454,   455,   456,   457,   458,   459,   460,
     461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,
     471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,
      -1,   482,   483,   484,   485,    -1,   487,   488,   489,   490,
     491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,
      -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,
     511,   512,   513,   514,    -1,   516,   517,   518,   519,   520,
     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
      -1,   532,    -1,   534,   535,   536,   537,    -1,   539,   540,
     541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,
      -1,   552,   553,   554,    -1,   556,   557,   558,   559,   560,
     561,   562,   563,   564,   565,   566,   567,    -1,   569,   570,
      -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,
     581,   582,    -1,    -1,   585,   586,   587,   588,   589,    -1,
      -1,   592,   593,    -1,   595,   596,   597,   598,   599,   600,
     601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,
     611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,
     621,   622,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,
     631,   632,    -1,    -1,   635,   636,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
      29,    -1,    31,    -1,    -1,    34,    35,    36,    37,    38,
      39,    40,    -1,    42,    43,    44,    -1,    46,    -1,    48,
      49,    -1,    -1,    52,    53,    54,    55,    56,    -1,    58,
      59,    60,    61,    62,    -1,    64,    65,    66,    67,    68,
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
      99,   100,   101,   102,    -1,    -1,   105,   106,   107,    -1,
     109,   110,   111,    -1,   113,   114,   115,   116,   117,   118,
      -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,
     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
     169,   170,   171,   172,    -1,   174,   175,   176,   177,   178,
     179,   180,    -1,   182,   183,   184,   185,    -1,   187,    -1,
      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
     199,   200,   201,   202,    -1,   204,    -1,   206,    -1,   208,
     209,   210,    -1,   212,   213,   214,    -1,   216,   217,    -1,
      -1,    -1,   221,   222,   223,   224,   225,    -1,   227,   228,
     229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,
     239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
      -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,
      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
     279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
     309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
     319,   320,   321,    -1,    -1,   324,   325,   326,   327,    -1,
     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
     339,    -1,   341,   342,   343,    -1,    -1,   346,   347,   348,
     349,   350,    -1,   352,   353,   354,    -1,   356,   357,    -1,
     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
     379,   380,    -1,   382,   383,    -1,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
     439,   440,   441,    -1,   443,    -1,   445,   446,    -1,   448,
     449,    -1,    -1,   452,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
     509,   510,   511,   512,   513,   514,    -1,   516,   517,   518,
     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
     539,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
      -1,    -1,    -1,   552,   553,   554,    -1,   556,   557,   558,
     559,   560,   561,   562,   563,   564,   565,   566,   567,    -1,
     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
      -1,   580,   581,   582,    -1,    -1,   585,   586,   587,   588,
     589,    -1,    -1,   592,   593,    -1,   595,   596,   597,   598,
     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
      -1,    -1,   621,   622,    -1,    -1,    -1,    -1,   627,   628,
      -1,    -1,   631,   632,    -1,    -1,   635,   636,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
      27,    28,    29,    -1,    31,    -1,    -1,    34,    35,    36,
      37,    38,    39,    40,    -1,    42,    43,    44,    -1,    46,
      -1,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
      -1,    58,    59,    60,    61,    62,    -1,    64,    65,    66,
      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
      97,    -1,    99,   100,   101,   102,    -1,    -1,   105,   106,
     107,    -1,   109,   110,   111,    -1,   113,   114,   115,   116,
     117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,
      -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
     167,   168,   169,   170,   171,   172,    -1,   174,   175,   176,
     177,   178,   179,   180,    -1,   182,   183,   184,   185,    -1,
     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
     197,   198,   199,   200,   201,   202,    -1,   204,    -1,   206,
      -1,   208,   209,   210,    -1,   212,   213,   214,    -1,   216,
     217,    -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,
     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
     237,   238,   239,   240,    -1,    -1,   243,    -1,   245,   246,
      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
     257,   258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,
      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
      -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,    -1,   301,   302,   303,   304,   305,   306,
     307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,
     317,   318,   319,   320,   321,    -1,    -1,   324,   325,   326,
     327,    -1,   329,   330,   331,   332,   333,   334,   335,   336,
     337,   338,   339,    -1,   341,   342,   343,    -1,    -1,   346,
     347,   348,   349,   350,    -1,   352,   353,   354,    -1,   356,
     357,    -1,   359,   360,   361,    -1,   363,   364,   365,   366,
      -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   378,   379,   380,    -1,   382,   383,    -1,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
     397,    -1,   399,   400,   401,    -1,   403,    -1,   405,   406,
     407,   408,   409,    -1,   411,   412,   413,    -1,    -1,   416,
      -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,
     427,   428,   429,   430,   431,    -1,   433,   434,    -1,   436,
     437,   438,   439,   440,   441,    -1,   443,    -1,   445,   446,
      -1,   448,   449,    -1,    -1,   452,   453,   454,   455,   456,
     457,   458,   459,   460,   461,   462,    -1,   464,   465,    -1,
      -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,
      -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,
     487,   488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,
      -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,
      -1,   508,   509,   510,   511,   512,   513,   514,    -1,   516,
     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
     527,   528,   529,   530,    -1,   532,    -1,   534,   535,   536,
     537,    -1,   539,   540,   541,    -1,   543,   544,   545,   546,
      -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,   556,
     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
     567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,
      -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,   586,
     587,   588,   589,    -1,    -1,   592,   593,    -1,   595,   596,
     597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,
      -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,   616,
      -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,    -1,
     627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,   636,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    34,
      35,    36,    37,    38,    39,    40,    -1,    42,    43,    44,
      -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,    54,
      55,    56,    -1,    58,    59,    60,    61,    62,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
      95,    96,    97,    -1,    99,   100,   101,   102,    -1,    -1,
     105,   106,   107,    -1,   109,   110,   111,    -1,   113,   114,
     115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,
     125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,   170,   171,   172,    -1,   174,
     175,   176,   177,   178,   179,   180,    -1,   182,   183,   184,
     185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
      -1,   206,    -1,   208,   209,   210,    -1,   212,   213,   214,
      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
      -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,   264,
     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,   326,   327,    -1,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,   341,   342,   343,    -1,
      -1,   346,   347,   348,   349,   350,    -1,   352,   353,   354,
      -1,   356,   357,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,    -1,   399,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
      -1,   436,   437,   438,   439,   440,   441,    -1,   443,    -1,
     445,   446,    -1,   448,   449,    -1,    -1,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,   509,   510,   511,   512,   513,   514,
      -1,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,   539,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
      -1,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
     585,   586,   587,   588,   589,    -1,    -1,   592,   593,    -1,
     595,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
      -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,
      -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,
     635,   636,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    36,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,   178,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,   341,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,   356,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,   557,   558,   559,   560,   561,   562,
     563,   564,   565,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,    -1,   616,    -1,    -1,    -1,    -1,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
      -1,    18,   635,   636,    21,    -1,    23,    24,    25,    26,
      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
      87,    88,    -1,    90,    91,    92,    93,    94,    95,    96,
      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
     187,    -1,    -1,    -1,   191,    -1,   193,   194,   195,    -1,
     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
     227,   228,   229,   230,   231,    -1,   233,    -1,    -1,    -1,
      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
      -1,   248,   249,    -1,    -1,    -1,   253,   254,    -1,   256,
     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
     267,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
     337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,   346,
     347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,    -1,
      -1,    -1,   359,   360,   361,    -1,   363,   364,   365,   366,
      -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,   386,
     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
      -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,   406,
     407,   408,   409,    -1,   411,   412,   413,    -1,    -1,   416,
      -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,
     427,   428,   429,   430,   431,    -1,   433,   434,    -1,   436,
     437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,   446,
      -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,   456,
     457,   458,   459,   460,   461,   462,    -1,   464,   465,   466,
      -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,
      -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,
     487,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
      -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,
      -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,   516,
     517,   518,   519,   520,   521,    -1,    -1,   524,   525,   526,
     527,    -1,   529,   530,    -1,   532,    -1,   534,   535,   536,
     537,    -1,    -1,   540,   541,    -1,   543,   544,   545,   546,
      -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,    -1,
      -1,   558,   559,   560,   561,    -1,   563,   564,    -1,   566,
     567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,
      -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,    -1,
      -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,   596,
     597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,
      -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,   616,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,   636,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    92,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,   194,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,   254,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
     493,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,    -1,   616,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
      -1,    -1,    21,   636,    23,    24,    25,    26,    27,    28,
      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
     339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,
     349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,
     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
     379,   380,    -1,    -1,   383,    -1,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,    -1,    -1,
     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
      -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,
     449,    -1,    -1,    -1,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,    -1,   464,   465,   466,    -1,    -1,
     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
     509,   510,    -1,    -1,   513,   514,    -1,   516,   517,   518,
     519,   520,   521,    -1,    -1,   524,   525,   526,   527,    -1,
     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
      -1,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
      -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,
     559,   560,   561,    -1,   563,   564,    -1,   566,   567,    -1,
     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
      -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,
     589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,
     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
     629,    -1,    -1,    18,    -1,    -1,    21,   636,    23,    24,
      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,    -1,   342,   343,    -1,
      -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,   354,
      -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
      -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,
     445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,
      -1,   516,   517,   518,   519,   520,   521,    -1,    -1,   524,
     525,   526,   527,    -1,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,    -1,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
      -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,   564,
      -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
      -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,
      -1,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
      -1,   616,    -1,    -1,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,   629,    14,    -1,    -1,    -1,    18,
     635,   636,    21,    -1,    23,    24,    25,    26,    27,    28,
      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
     339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,
     349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,
     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
     379,   380,    -1,    -1,   383,    -1,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,    -1,    -1,
     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
      -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,
     449,    -1,    -1,    -1,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
     509,   510,    -1,    -1,   513,   514,    -1,   516,   517,   518,
     519,   520,   521,    -1,    -1,   524,   525,   526,   527,    -1,
     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
      -1,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
      -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,
     559,   560,   561,    -1,   563,   564,    -1,   566,   567,    -1,
     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
      -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,
     589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,
     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,   628,
      -1,    14,    -1,    -1,    -1,    18,    -1,   636,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,   241,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,    -1,   616,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
      -1,    -1,    21,   636,    23,    24,    25,    26,    27,    28,
      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
     339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,
     349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,
     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
     379,   380,    -1,    -1,   383,    -1,   385,   386,   387,   388,
     389,   390,   391,   392,   393,   394,   395,   396,    -1,    -1,
     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
      -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,
     449,    -1,    -1,    -1,   453,   454,   455,   456,   457,   458,
     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
     509,   510,    -1,    -1,   513,   514,    -1,   516,   517,   518,
     519,   520,   521,    -1,    -1,   524,   525,   526,   527,    -1,
     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
      -1,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
      -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,
     559,   560,   561,    -1,   563,   564,    -1,   566,   567,    -1,
     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
      -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,
     589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,
     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
      -1,    -1,    -1,     5,   623,     7,     8,     9,    10,    11,
      -1,    -1,    14,    -1,    -1,    -1,    18,   636,    -1,    21,
      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
     332,   333,   334,   335,   336,   337,   338,   339,    -1,    -1,
     342,   343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,
      -1,   353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,
      -1,   363,   364,   365,   366,    -1,   368,   369,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,
      -1,   383,    -1,   385,   386,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,    -1,    -1,   399,   400,   401,
      -1,   403,    -1,   405,   406,   407,   408,   409,    -1,   411,
     412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,
     422,   423,   424,    -1,    -1,   427,   428,   429,   430,   431,
      -1,   433,   434,    -1,   436,   437,   438,    -1,    -1,   441,
      -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,
      -1,   453,   454,   455,   456,   457,   458,   459,   460,   461,
     462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,
     472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,
     482,   483,   484,   485,    -1,   487,   488,   489,   490,   491,
     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,
     502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,
      -1,   513,   514,    -1,   516,   517,   518,   519,   520,   521,
      -1,    -1,   524,   525,   526,   527,    -1,   529,   530,    -1,
     532,    -1,   534,   535,   536,   537,    -1,    -1,   540,   541,
      -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
     552,   553,   554,    -1,    -1,    -1,   558,   559,   560,   561,
      -1,   563,   564,    -1,   566,   567,    -1,   569,   570,    -1,
      -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,
     582,    -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,
     592,    -1,    -1,    -1,   596,   597,   598,   599,   600,   601,
      -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,
     612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,     5,
      -1,     7,     8,     9,    10,    11,   628,    -1,    14,    -1,
      -1,    -1,    18,    -1,   636,    21,    -1,    23,    24,    25,
      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
     336,   337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,
     346,   347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,
      -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,   365,
     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,
     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
     436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,
     446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,
     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
      -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,
     516,   517,   518,   519,   520,   521,    -1,    -1,   524,   525,
     526,   527,    -1,   529,   530,    -1,   532,    -1,   534,   535,
     536,   537,    -1,    -1,   540,   541,    -1,   543,   544,   545,
     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
      -1,    -1,   558,   559,   560,   561,    -1,   563,   564,    -1,
     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,
      -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,
     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
     616,    -1,    -1,    -1,    -1,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,   635,
     636,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
      -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,
      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
     180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,
      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
      -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,
      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,
     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
      -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,   349,
      -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,
     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
     380,    -1,    -1,   383,    -1,   385,   386,   387,   388,   389,
     390,   391,   392,   393,   394,   395,   396,    -1,    -1,   399,
     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
     430,   431,    -1,   433,   434,    -1,   436,   437,   438,    -1,
      -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
      -1,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
     460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,
     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
     510,    -1,    -1,   513,   514,    -1,   516,   517,   518,   519,
     520,   521,    -1,    -1,   524,   525,   526,   527,    -1,   529,
     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,    -1,
     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
      -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,   559,
     560,   561,    -1,   563,   564,    -1,   566,   567,    -1,   569,
     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
     580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,   589,
      -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,   599,
     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
      -1,    -1,    18,    -1,    -1,    21,   636,    23,    24,    25,
      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
     336,   337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,
     346,   347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,
      -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,   365,
     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
     396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,
     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
     436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,
     446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,
     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
      -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,
     516,   517,   518,   519,   520,   521,    -1,    -1,   524,   525,
     526,   527,    -1,   529,   530,    -1,   532,    -1,   534,   535,
     536,   537,    -1,    -1,   540,   541,    -1,   543,   544,   545,
     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
      -1,    -1,   558,   559,   560,   561,    -1,   563,   564,    -1,
     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,
      -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,
     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
     616,    -1,    -1,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
     636,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
     332,   333,   334,   335,   336,   337,   338,   339,    -1,    -1,
     342,   343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,
      -1,   353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,
      -1,   363,   364,   365,   366,    -1,   368,   369,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,
      -1,   383,    -1,   385,   386,   387,   388,   389,   390,   391,
     392,   393,   394,   395,   396,    -1,    -1,   399,   400,   401,
      -1,   403,    -1,   405,   406,   407,   408,   409,    -1,   411,
     412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,
     422,   423,   424,    -1,    -1,   427,   428,   429,   430,   431,
      -1,   433,   434,    -1,   436,   437,   438,    -1,    -1,   441,
      -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,
      -1,   453,   454,   455,   456,   457,   458,   459,   460,   461,
     462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,
     472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,
     482,   483,   484,   485,    -1,   487,   488,   489,   490,   491,
     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,
     502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,
      -1,   513,   514,    -1,   516,   517,   518,   519,   520,   521,
      -1,    -1,   524,   525,   526,   527,    -1,   529,   530,    -1,
     532,    -1,   534,   535,   536,   537,    -1,    -1,   540,   541,
      -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
     552,   553,   554,    -1,    -1,    -1,   558,   559,   560,   561,
      -1,   563,   564,    -1,   566,   567,    -1,   569,   570,    -1,
      -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,
     582,    -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,
     592,    -1,    -1,    -1,   596,   597,   598,   599,   600,   601,
      -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,
     612,   613,    -1,    -1,   616,    -1,    -1,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
      18,    -1,    -1,    21,   636,    23,    24,    25,    26,    27,
      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
     258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,
      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
     338,   339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,
     348,   349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,
      -1,   359,   360,   361,    -1,   363,   364,   365,   366,    -1,
     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     378,   379,   380,    -1,    -1,   383,    -1,   385,   386,   387,
     388,   389,   390,   391,   392,   393,   394,   395,   396,    -1,
      -1,   399,   400,   401,    -1,   403,    -1,   405,   406,   407,
     408,   409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,
      -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,   427,
     428,   429,   430,   431,    -1,   433,   434,    -1,   436,   437,
     438,    -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,
     448,   449,    -1,    -1,    -1,   453,   454,   455,   456,   457,
     458,   459,   460,   461,   462,    -1,   464,   465,    -1,    -1,
      -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,
      -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,   487,
     488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,
      -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,
     508,   509,   510,    -1,    -1,   513,   514,    -1,   516,   517,
     518,   519,   520,   521,    -1,    -1,   524,   525,   526,   527,
      -1,   529,   530,    -1,   532,    -1,   534,   535,   536,   537,
      -1,    -1,   540,   541,    -1,   543,   544,   545,   546,    -1,
      -1,    -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,
     558,   559,   560,   561,    -1,   563,   564,    -1,   566,   567,
      -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,
     578,    -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,
      -1,   589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,
     598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,
     608,   609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,
      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      14,    -1,    -1,    -1,    18,    -1,    -1,    21,   636,    23,
      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
      -1,    -1,   616,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
      21,   635,    23,    24,    25,    26,    27,    28,    29,    -1,
      31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
      -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,
      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
      91,    -1,    93,    94,    95,    96,    97,    -1,    99,    -1,
      -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,
      -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,
      -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,
     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
     171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,
      -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,
     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
     201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
     221,   222,   223,   224,    -1,    -1,   227,   228,   229,    -1,
     231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,
      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
     261,    -1,    -1,   264,   265,   266,    -1,    -1,    -1,    -1,
     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
     301,   302,   303,    -1,   305,   306,   307,   308,    -1,   310,
     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
     321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,
     331,   332,   333,   334,   335,   336,   337,   338,   339,    -1,
      -1,   342,   343,    -1,    -1,   346,   347,   348,   349,    -1,
      -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,   360,
     361,    -1,   363,   364,   365,   366,    -1,   368,   369,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
      -1,    -1,   383,    -1,   385,   386,   387,   388,   389,   390,
     391,   392,   393,   394,   395,   396,    -1,    -1,   399,   400,
     401,    -1,   403,    -1,   405,   406,   407,   408,   409,    -1,
     411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,
     421,   422,   423,   424,    -1,    -1,   427,   428,   429,   430,
     431,    -1,   433,   434,    -1,   436,   437,   438,    -1,    -1,
     441,    -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,
      -1,    -1,   453,   454,   455,   456,   457,   458,   459,   460,
     461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,
     471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,
      -1,   482,   483,   484,   485,    -1,   487,   488,   489,   490,
     491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,
      -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,
      -1,    -1,   513,   514,    -1,   516,   517,   518,   519,   520,
     521,    -1,    -1,   524,   525,   526,   527,    -1,   529,   530,
      -1,   532,    -1,   534,   535,   536,   537,    -1,   539,   540,
     541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,
      -1,   552,   553,   554,    -1,    -1,    -1,   558,   559,   560,
     561,    -1,   563,   564,    -1,   566,   567,    -1,   569,   570,
      -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,
     581,   582,    -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,
      -1,   592,    -1,    -1,    -1,   596,   597,   598,   599,   600,
     601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,
     611,   612,   613,    -1,    -1,   616,    -1,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
      18,    -1,    -1,    21,   635,    23,    24,    25,    26,    27,
      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
     258,    -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,
      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
     338,   339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,
     348,   349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,
      -1,   359,   360,   361,    -1,   363,   364,   365,   366,    -1,
     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     378,   379,   380,    -1,    -1,   383,    -1,   385,   386,   387,
     388,   389,   390,   391,   392,   393,   394,   395,   396,    -1,
      -1,   399,   400,   401,    -1,   403,    -1,   405,   406,   407,
     408,   409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,
      -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,   427,
     428,   429,   430,   431,    -1,   433,   434,    -1,   436,   437,
     438,    -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,
     448,   449,    -1,    -1,    -1,   453,   454,   455,   456,   457,
     458,   459,   460,   461,   462,    -1,   464,   465,    -1,    -1,
      -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,
      -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,   487,
     488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,
      -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,
     508,   509,   510,    -1,    -1,   513,   514,    -1,   516,   517,
     518,   519,   520,   521,    -1,    -1,   524,   525,   526,   527,
      -1,   529,   530,    -1,   532,    -1,   534,   535,   536,   537,
      -1,   539,   540,   541,    -1,   543,   544,   545,   546,    -1,
      -1,    -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,
     558,   559,   560,   561,    -1,   563,   564,    -1,   566,   567,
      -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,
     578,    -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,
      -1,   589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,
     598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,
     608,   609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
      -1,    -1,    -1,    18,    -1,    -1,    -1,   635,    23,    24,
      25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,    -1,
      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
      -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,    -1,
      55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,    -1,
      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
      95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,    -1,
      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,    -1,
      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
      -1,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,   174,
     175,   176,    -1,    -1,   179,   180,   181,   182,   183,   184,
      -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
      -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,    -1,
      -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,   224,
     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,   250,    -1,    -1,   253,    -1,
      -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,   264,
     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,   284,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,    -1,   342,   343,    -1,
      -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,   354,
      -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,    -1,
     385,   386,   387,    -1,   389,   390,   391,   392,   393,   394,
     395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,    -1,
      -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,    -1,
     445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,   454,
     455,   456,   457,   458,   459,    -1,   461,   462,    -1,   464,
      -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,    -1,
     485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,   514,
      -1,   516,   517,   518,   519,   520,   521,    -1,    -1,   524,
     525,   526,   527,    -1,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,    -1,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
      -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,   564,
      -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,    -1,
      -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,    -1,
      -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,
      -1,   596,   597,   598,   599,   600,   601,    -1,    -1,   604,
      -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,    -1,
       5,   616,     7,     8,     9,    10,    11,    -1,    -1,    14,
      -1,    -1,    -1,    18,    -1,   630,    21,    -1,    23,    24,
      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
     105,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,
     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
     265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
     335,   336,   337,   338,   339,    -1,    -1,   342,   343,    -1,
      -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,   354,
      -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,
     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,
     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
      -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,
     445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
     505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,
      -1,   516,   517,   518,   519,   520,   521,    -1,    -1,   524,
     525,   526,   527,    -1,   529,   530,    -1,   532,    -1,   534,
     535,   536,   537,    -1,   539,   540,   541,    -1,   543,   544,
     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
      -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,   564,
      -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
      -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,
      -1,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
      -1,   616,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,   628,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
     623,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
     623,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
     623,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
     623,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,   350,   351,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,   495,   496,   497,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
     213,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,   161,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,   475,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    36,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,   562,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,   107,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    12,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    19,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    98,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
     173,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,   496,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,   192,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    12,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,   402,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,   539,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,   151,   152,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,   151,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,   602,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,   151,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,   602,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,    -1,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,    -1,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,   604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,     5,   616,     7,     8,     9,    10,    11,    -1,
      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
      23,    24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,
      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
      -1,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
      -1,    64,    65,    66,    67,    -1,    69,    70,    -1,    72,
      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
      -1,    -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
     153,    -1,    -1,   156,    -1,   158,   159,   160,    -1,    -1,
     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,    -1,
      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
      -1,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
     363,   364,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,
      -1,    -1,   385,   386,   387,    -1,   389,   390,   391,   392,
     393,   394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,
     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
     433,    -1,    -1,   436,    -1,   438,    -1,    -1,   441,    -1,
      -1,    -1,   445,    -1,    -1,   448,   449,    -1,    -1,    -1,
      -1,   454,   455,   456,   457,   458,   459,    -1,   461,   462,
      -1,   464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,
      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,
     483,    -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,
      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
      -1,    -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,
      -1,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
     553,   554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,
     563,   564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,
     573,    -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,
      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
      -1,    -1,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,
     613,    -1,    -1,   616
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    13,    15,    31,    35,    49,    50,    57,    62,    63,
      84,   103,   124,   132,   133,   134,   144,   145,   157,   171,
     187,   203,   208,   212,   237,   239,   255,   273,   277,   367,
     384,   388,   399,   410,   432,   435,   437,   440,   443,   444,
     451,   453,   460,   466,   474,   479,   481,   484,   509,   513,
     558,   570,   574,   577,   583,   612,   618,   628,   639,   642,
     643,   644,   645,   646,   648,   653,   655,   662,   692,   720,
     727,   836,   926,  1000,  1043,  1046,  1054,  1057,  1062,  1064,
    1065,  1070,  1073,  1078,  1085,  1097,  1098,  1264,  1266,  1276,
    1279,  1304,  1312,  1323,  1330,  1344,  1347,  1350,  1360,  1366,
    1370,  1375,  1376,  1426,  1443,  1449,  1451,  1458,  1460,  1488,
    1494,  1495,  1496,  1497,  1550,  1558,  1559,  1560,    11,   111,
     129,   195,   278,   404,   472,   530,  1035,  1036,  1519,  1520,
    1521,  1524,   274,   355,  1072,  1489,   539,  1417,   230,     5,
       7,     8,     9,    10,    11,    14,    18,    21,    23,    24,
      25,    26,    27,    28,    29,    31,    35,    39,    42,    43,
      44,    46,    48,    49,    52,    55,    56,    58,    59,    61,
      62,    64,    65,    66,    67,    68,    69,    70,    72,    73,
      74,    75,    76,    77,    78,    79,    81,    82,    83,    84,
      85,    86,    87,    88,    90,    91,    93,    94,    95,    96,
      97,    99,   102,   105,   109,   113,   114,   115,   118,   123,
     124,   129,   131,   135,   137,   138,   139,   140,   144,   147,
     148,   149,   153,   155,   156,   158,   159,   160,   163,   164,
     166,   167,   168,   169,   170,   171,   174,   175,   176,   179,
     180,   182,   183,   184,   187,   191,   193,   195,   197,   198,
     199,   200,   201,   202,   204,   208,   209,   210,   212,   216,
     217,   221,   222,   223,   224,   227,   228,   229,   231,   233,
     238,   239,   243,   245,   246,   248,   249,   253,   256,   257,
     258,   261,   264,   265,   271,   272,   274,   276,   278,   279,
     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
     297,   298,   299,   301,   302,   303,   305,   306,   307,   308,
     310,   311,   316,   317,   318,   319,   320,   321,   324,   325,
     327,   329,   331,   332,   333,   334,   335,   336,   337,   338,
     339,   342,   343,   346,   347,   348,   349,   353,   354,   359,
     360,   361,   363,   364,   365,   366,   368,   369,   378,   379,
     380,   383,   385,   386,   387,   388,   389,   390,   391,   392,
     393,   394,   395,   396,   399,   400,   401,   403,   405,   406,
     407,   408,   409,   411,   412,   413,   416,   420,   421,   422,
     423,   424,   427,   428,   429,   430,   431,   433,   434,   436,
     437,   438,   441,   443,   445,   446,   448,   449,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   464,   465,
     469,   470,   471,   472,   476,   480,   482,   483,   484,   485,
     487,   488,   489,   490,   491,   492,   499,   500,   502,   505,
     508,   509,   510,   513,   514,   516,   517,   518,   519,   520,
     521,   524,   525,   526,   527,   529,   530,   532,   534,   535,
     536,   537,   540,   541,   543,   544,   545,   546,   552,   553,
     554,   558,   559,   560,   561,   563,   564,   566,   567,   569,
     570,   573,   576,   578,   580,   581,   582,   589,   592,   596,
     597,   598,   599,   600,   601,   608,   609,   611,   612,   613,
     616,   686,  1416,  1420,  1424,  1425,   301,   529,   533,  1445,
    1445,   608,  1490,   111,   194,   278,   472,   493,   530,   536,
     572,   580,   668,   669,   888,   889,   890,   978,   979,   980,
    1313,  1265,   111,   168,   195,   230,   278,   404,   472,   530,
     536,   555,   580,   597,  1275,  1420,  1072,   685,   636,  1413,
    1415,  1420,   654,  1277,   393,   490,  1371,   114,   230,   613,
    1381,  1445,  1072,   628,   837,  1420,  1367,   460,   580,  1445,
    1072,  1280,  1361,   496,   717,   721,   722,  1420,   685,  1490,
    1420,  1101,  1103,  1104,   369,  1428,  1331,   721,   509,   513,
     484,   552,   484,   533,  1325,   393,   490,  1450,  1305,  1420,
      31,    84,   155,   399,   421,   453,   509,  1552,   466,   628,
    1099,     0,   157,   640,   399,   175,   387,  1348,  1413,  1420,
     161,  1011,  1420,   161,   686,   205,   686,   266,  1417,  1420,
    1422,   782,   783,   786,   809,  1420,   533,   226,   365,  1037,
    1038,  1039,   168,  1006,  1519,  1445,  1490,  1079,   693,   636,
     550,  1055,  1066,    17,  1491,   225,   891,   205,  1422,   784,
     809,   685,   374,  1516,  1520,  1521,  1522,  1523,  1524,   533,
     889,   230,   230,   230,   226,   285,   413,  1321,  1322,     7,
      21,    28,    34,    36,    37,    38,    40,    53,    54,    59,
      60,    69,    72,    74,    75,    76,    77,    78,    79,    96,
     100,   101,   106,   107,   110,   111,   116,   117,   118,   123,
     125,   128,   172,   177,   178,   185,   199,   201,   206,   213,
     214,   221,   225,   237,   240,   258,   263,   271,   282,   304,
     309,   320,   324,   326,   330,   331,   332,   333,   334,   341,
     350,   351,   352,   356,   357,   361,   382,   389,   394,   395,
     397,   411,   439,   440,   452,   458,   464,   511,   512,   518,
     522,   523,   528,   539,   543,   544,   545,   546,   556,   557,
     558,   562,   565,   580,   585,   586,   587,   588,   593,   595,
     601,   616,   621,   622,   627,   628,   631,   632,   635,   636,
    1119,  1120,  1121,  1122,  1126,  1133,  1134,  1135,  1136,  1137,
    1138,  1146,  1150,  1163,  1400,  1402,  1404,  1405,  1409,  1411,
    1416,  1420,   225,  1274,  1274,  1274,  1420,   205,  1274,  1274,
     809,  1274,   685,  1274,  1445,   649,  1351,    12,    13,   103,
     132,   145,   168,   171,   182,   203,   230,   237,   277,   405,
     409,   425,   433,   441,   466,   479,   480,   524,   555,   577,
     579,  1461,  1463,  1465,  1466,  1420,   366,    68,   417,   636,
    1422,   130,   215,   285,  1282,  1420,  1417,   209,   489,  1372,
     241,  1377,  1444,  1445,   927,  1114,    47,   838,   192,    34,
     301,  1336,  1368,  1420,   685,  1074,  1445,   130,   285,  1283,
    1311,   301,   412,   484,  1362,  1363,   589,   718,   474,   723,
      12,   409,  1459,  1463,   550,  1491,  1102,    12,   141,   215,
     498,   499,   500,   501,   502,   503,   515,  1108,  1109,  1110,
    1515,  1427,    24,    35,    59,    60,    67,    72,    99,   101,
     103,   112,   159,   164,   167,   193,   195,   202,   204,   229,
     230,   231,   252,   274,   301,   366,   392,   403,   404,   407,
     408,   428,   471,   484,   514,   532,   533,   581,   600,   952,
     977,  1332,  1336,  1337,  1339,  1434,   723,  1048,  1049,  1048,
    1048,   605,  1047,  1048,  1324,  1420,  1417,  1445,  1311,    36,
     213,   214,   539,  1401,  1418,  1551,  1551,  1551,  1551,  1551,
    1103,  1099,   629,   634,  1420,  1346,  1345,   318,   537,   564,
    1002,   578,   107,  1422,  1423,  1004,   788,   810,  1420,  1003,
     368,     6,    57,   145,   351,   416,   418,   811,  1413,  1039,
     686,   504,  1525,  1526,  1005,  1063,  1080,  1081,  1082,  1083,
    1413,   628,   694,  1420,   656,  1270,  1271,  1413,  1270,    56,
     353,   353,   432,  1492,   350,   351,  1125,  1420,   787,   810,
     189,     6,  1423,  1476,  1479,   440,    10,   404,   555,   672,
    1114,  1518,  1526,  1534,  1538,  1539,  1545,   672,  1114,  1517,
    1526,  1534,  1539,  1545,  1519,  1524,   891,  1420,  1420,  1420,
     192,  1314,  1318,  1319,  1420,  1321,   628,   628,   628,  1133,
     628,   628,   628,  1119,  1166,   628,   628,   628,   628,   628,
     628,   628,   628,   628,   628,   628,   628,   628,   628,   628,
    1118,  1118,   628,  1117,   628,   628,   628,   565,   628,  1400,
     628,   628,   628,   628,   628,   628,   628,   628,   628,   628,
     628,  1119,   628,   628,   628,   628,  1164,  1165,  1409,  1420,
     628,   628,   628,   628,   628,   628,   628,   628,   628,  1119,
    1117,   628,   628,   628,   628,   628,   628,   628,   628,   628,
     628,   628,   628,   628,   628,   628,   628,  1117,   628,  1400,
     628,   628,   628,  1400,   628,   628,    36,   213,   214,   539,
     951,   628,  1118,  1117,  1117,   628,   628,   628,   628,   628,
    1133,  1133,  1133,  1119,  1510,  1511,  1420,  1151,  1420,    16,
      17,   371,   374,   614,  1123,  1124,   161,   162,   196,   207,
     247,   259,   286,   344,  1127,    32,   142,   244,   267,   330,
     426,   477,   478,   491,   619,   620,   621,   622,   623,   624,
     625,   626,  1125,  1133,    71,   373,   630,  1418,   628,   636,
     172,  1420,   686,  1420,   362,   810,   686,  1422,   820,  1337,
     686,  1423,  1475,  1269,  1274,   584,   650,    34,    67,   135,
     159,   163,   197,   217,   231,   279,   301,   403,   412,   427,
     445,   484,   485,   510,   532,   581,  1352,  1356,  1357,  1445,
     403,  1464,   455,   455,   530,   536,   580,   597,   369,  1468,
     529,   362,  1470,    66,   484,  1467,   112,   597,  1469,   362,
     630,    19,   161,  1216,  1217,  1452,  1420,   226,  1034,   490,
      90,   412,  1373,    49,    88,   285,  1383,  1413,  1446,  1447,
    1071,   629,  1119,   269,   272,   414,   839,   841,   635,   647,
    1417,   279,  1075,  1423,  1076,  1077,  1413,  1058,   241,  1271,
    1284,  1285,    49,  1364,   630,  1418,    55,    65,    81,    93,
      94,    95,   109,   319,   336,   462,   517,   535,   724,   726,
    1464,   362,   362,   460,  1493,  1492,   571,  1498,  1499,   623,
    1112,  1113,  1114,  1110,  1429,  1430,  1431,   167,   474,   267,
     603,  1343,   628,   111,   168,   195,   404,   533,   555,   597,
    1343,    12,   900,  1422,   268,  1235,  1237,   192,   244,  1338,
    1340,    70,   510,   190,   510,   529,    70,   510,    12,    42,
      97,   102,   246,   317,   380,   492,   526,  1326,  1327,  1328,
     167,   217,   510,   510,  1235,  1343,  1340,   279,   158,    73,
     406,   529,   554,   510,   592,  1045,   431,   505,  1050,  1051,
    1044,    91,  1271,  1034,   630,   364,  1554,   525,  1555,   251,
     448,  1553,   629,  1499,  1501,  1503,  1504,   157,   641,  1097,
    1349,  1401,  1420,   128,   886,   887,   897,   898,   961,   114,
    1118,   635,   687,     6,   789,   687,   628,   113,   806,   806,
     806,     4,  1001,  1007,   465,   597,  1526,  1270,   244,   630,
     388,  1091,  1093,  1094,   695,   696,  1119,   227,   287,   288,
     289,   290,   291,   292,   294,   295,   296,   297,   298,   299,
     300,   302,   303,   429,   430,   657,   658,   661,   175,   413,
     630,  1056,    58,   175,   179,   190,   316,   413,  1067,  1068,
    1069,    56,   432,   172,   667,   789,   114,   806,   223,   630,
    1114,  1114,  1114,   168,   195,   195,  1526,  1413,   981,   982,
     981,   981,  1272,  1273,  1413,  1414,  1420,   630,  1316,   636,
    1320,  1119,  1119,    12,   141,  1158,  1218,  1158,  1158,  1158,
     602,  1168,  1119,  1119,  1163,  1163,  1119,  1119,  1119,  1131,
    1132,  1119,  1119,  1119,  1119,  1119,  1119,   141,  1158,  1218,
     629,   125,   185,   213,   282,   357,   562,   629,  1244,  1247,
    1248,   629,  1119,  1119,  1119,  1119,  1409,  1510,   119,   120,
     121,   122,   123,   218,   219,   220,   221,   320,   322,   323,
     324,   331,   411,   463,   464,   601,   615,   616,  1213,  1214,
    1163,   115,   118,   543,   546,  1215,   141,  1153,  1119,  1119,
    1119,  1119,  1213,  1163,  1119,  1163,  1165,     9,   630,   636,
     141,  1158,  1119,  1119,   141,  1158,  1119,  1119,  1163,  1163,
    1163,  1119,  1119,  1119,  1163,  1122,  1119,  1119,  1119,  1119,
    1119,  1119,  1158,  1158,  1119,  1119,   141,  1158,  1119,  1214,
    1214,  1119,    45,   260,   551,  1119,  1119,   629,  1410,  1411,
    1420,  1158,  1158,  1119,  1119,   629,   630,   629,   466,   628,
    1507,  1508,  1119,   635,  1152,  1422,   636,  1119,  1119,  1119,
    1121,   178,   356,   557,   573,  1125,    12,    18,  1121,  1128,
    1122,  1122,   628,  1133,  1122,  1122,  1122,  1122,   267,  1122,
    1122,   240,  1122,   240,  1122,  1122,  1122,  1122,  1122,    32,
     244,   267,   426,  1422,  1133,  1119,  1139,  1420,   636,  1413,
     820,   354,   599,   821,   822,   159,   630,  1270,  1267,   635,
     651,   652,   279,   279,   279,   279,    49,   279,   279,   630,
    1353,   529,   628,  1480,  1423,  1480,  1480,  1480,   195,   404,
     533,  1462,  1466,  1420,   183,   347,  1420,  1453,  1454,  1284,
    1417,   580,  1119,  1374,  1086,   274,  1382,  1217,   630,  1270,
    1115,    73,   628,   846,   847,   846,   847,   387,   849,   210,
     254,  1422,    30,   550,  1369,   630,   550,   630,   550,  1270,
    1285,  1281,    12,  1365,  1363,   630,   161,   630,  1423,   195,
     404,  1462,  1420,    12,   141,  1506,   630,  1105,  1119,  1407,
    1420,   630,   202,   274,   363,   471,  1432,  1433,  1436,  1437,
     244,  1341,  1417,  1119,   623,   891,   686,   686,   686,  1413,
     686,  1413,   279,   335,   510,  1335,  1335,   282,   357,   456,
     562,  1238,  1239,  1402,  1420,  1343,  1420,   686,  1343,  1423,
    1338,   686,  1343,   245,   527,   180,   190,  1329,   630,  1341,
    1338,  1413,  1340,  1338,  1338,  1343,  1343,   576,  1052,   630,
    1052,   487,   466,   628,   632,  1169,  1170,  1171,  1172,  1173,
    1182,  1183,  1197,  1401,   391,  1556,   372,  1231,  1237,  1505,
     887,    71,   952,   137,  1422,    82,    96,   256,   328,   353,
     415,   504,   689,   691,   422,   566,   807,   808,   233,   803,
     804,   805,   812,   820,   822,   111,   216,   378,   389,   396,
     488,   580,   670,   671,  1417,    25,   308,   797,   798,   799,
     812,   813,   814,   820,   822,   790,   791,   797,     6,    13,
      15,    26,    27,    57,    62,    63,    69,    82,    90,   100,
     114,   131,   138,   139,   145,   153,   159,   188,   228,   230,
     238,   253,   307,   325,   329,   367,   372,   379,   381,   388,
     389,   420,   434,   435,   436,   437,   457,   514,   530,   534,
     553,   558,   571,   833,   893,   895,   897,   898,  1012,  1016,
    1018,  1021,  1027,  1028,  1029,  1227,  1416,   362,   680,  1008,
     129,   243,  1413,   128,  1084,  1420,  1082,  1413,   835,  1093,
     230,   254,   975,  1095,   629,   630,   161,   161,   161,   161,
     161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
     161,   161,   161,   161,   630,  1271,   578,  1068,   885,   886,
      82,   348,   423,   567,   800,   801,   802,   812,   816,   817,
     818,   819,   820,   822,   609,   583,   785,    47,   596,   605,
    1477,  1479,   195,   686,   686,   891,   686,  1420,   663,   560,
     584,   989,   362,   362,   362,   630,  1317,  1315,   636,  1320,
    1319,   192,   623,  1420,   630,   629,  1158,   629,  1159,   629,
     629,   629,  1119,   151,   602,  1167,    19,   629,   584,   629,
     629,   629,   630,   630,   629,   630,   630,   630,   630,   629,
     630,   584,   630,  1147,   629,   623,   629,   630,   630,   629,
     629,   629,   629,   192,   629,   630,  1149,   629,   630,   630,
     630,   622,   629,   630,   629,   629,   628,  1409,  1420,  1158,
     629,   629,   629,  1158,   629,   630,   629,   629,   629,   629,
     629,   629,   630,   629,   244,   629,   630,   630,   630,   630,
     629,   629,   629,   630,   192,   630,  1158,   629,   629,   630,
     630,   630,   629,   192,  1119,   192,  1119,   192,  1119,   192,
     629,   630,   629,   629,   629,   629,   630,   629,  1163,  1187,
    1188,  1189,   466,   628,  1100,  1502,  1503,   571,  1512,   633,
     202,   274,   471,  1435,   475,  1420,   178,   356,   557,   573,
     628,    17,  1119,  1510,   166,  1223,  1122,  1119,  1119,  1122,
     628,  1133,  1122,  1114,  1143,  1144,  1145,   628,   636,  1420,
    1268,   821,   161,   475,  1295,  1296,  1423,    51,   447,  1040,
    1270,  1422,   630,  1357,  1270,  1358,  1420,  1481,  1482,   550,
     623,  1413,  1420,  1474,  1474,  1474,   161,   183,   196,   207,
     257,   259,   286,   347,   401,  1455,  1457,   603,  1219,  1278,
    1423,  1087,  1088,  1089,  1090,  1413,   232,   285,   417,   610,
    1448,  1447,   628,  1114,  1244,   521,   850,   840,    11,   842,
    1119,  1417,  1423,  1423,  1077,  1413,   175,   413,   582,  1059,
    1060,  1061,   466,   474,   588,   589,   628,   881,  1286,  1289,
     726,   118,   543,   546,   725,  1150,  1404,  1409,   203,   192,
    1474,  1474,  1474,  1500,  1113,   192,   241,  1106,  1107,  1230,
    1231,  1259,  1115,  1115,   636,  1430,   128,   552,  1420,  1439,
     337,   389,   635,   952,  1438,  1417,   192,  1342,   629,  1420,
     170,   456,   360,   630,  1343,   412,  1235,  1328,  1342,  1343,
    1338,  1413,  1343,  1343,   661,  1053,  1051,  1196,  1420,   104,
     234,   251,   263,   340,   452,   515,  1181,   474,   630,  1413,
    1196,   630,   190,  1557,    47,  1235,  1296,  1296,   338,  1417,
     504,   504,   504,   504,   504,   465,  1417,  1417,  1296,   630,
     805,  1417,  1417,  1417,  1417,   125,   185,   213,   282,   357,
     562,  1243,  1417,  1417,   629,   630,  1296,  1296,   630,   799,
     792,   793,   812,   813,   814,    80,    92,   388,   909,   916,
     917,   973,   975,   979,   980,  1033,  1033,   388,  1296,  1296,
    1033,  1296,   388,   388,  1296,  1296,   550,   137,  1296,   252,
     530,   189,   388,   402,   975,  1033,   252,  1296,   530,   137,
    1296,  1296,  1296,  1296,  1033,   388,    47,  1296,  1296,   835,
    1296,   388,   386,    19,   161,   550,  1042,   388,   388,  1296,
     140,   317,  1420,  1296,  1296,   388,  1296,   893,   630,   832,
     833,  1016,   628,   636,   908,   918,  1412,  1420,  1295,    86,
     461,   435,  1009,  1527,  1092,   628,  1119,   628,  1243,  1417,
    1417,   125,   185,   282,   357,   562,  1245,  1417,  1243,  1417,
    1417,  1417,  1417,  1417,  1243,  1243,  1417,  1405,  1417,  1243,
     658,  1296,  1296,  1296,  1296,   630,   802,  1422,   278,   176,
     794,   795,   796,   812,   813,   814,   815,   818,   819,   820,
     822,   389,   539,  1422,  1420,  1546,     8,    30,   780,   686,
     628,   449,   267,   628,   824,   892,   894,   895,    46,   210,
     459,   994,   994,  1413,  1413,  1413,  1273,  1420,   584,  1219,
    1420,  1170,   636,  1320,   240,  1119,   629,  1119,   542,  1119,
    1119,   155,    34,    60,   115,   118,   126,   143,   242,   342,
     482,   546,   575,  1160,    34,   953,  1422,  1132,  1119,  1131,
    1163,  1119,  1119,  1119,   953,  1160,  1163,   629,   240,   240,
    1119,  1119,  1163,  1119,  1119,  1119,  1119,  1119,  1122,   629,
     629,  1119,  1119,  1119,  1119,  1119,  1119,  1163,   240,  1119,
    1119,  1119,   629,  1119,  1119,  1119,  1119,   192,  1119,   192,
    1119,   192,  1119,  1119,  1119,   629,  1513,  1514,  1515,  1188,
    1100,   629,  1506,   636,   636,   636,  1422,  1119,  1510,  1121,
     629,   630,   629,  1133,  1213,  1213,    17,  1119,  1510,  1223,
    1119,   629,   630,  1162,  1163,  1420,   899,  1422,  1040,   652,
    1354,   629,   630,  1476,   636,   636,   550,   550,   550,  1456,
    1220,  1236,  1237,  1286,   630,  1091,  1093,   539,  1419,   610,
     274,    88,   843,   844,   845,  1420,   855,  1122,    47,   628,
     857,   847,   161,   628,   550,  1060,   882,  1287,   628,  1292,
    1297,  1292,   629,   881,  1288,  1406,  1407,  1410,  1420,  1290,
     161,   369,  1475,   192,   192,   192,  1098,   146,  1170,  1260,
     190,   277,  1111,  1259,  1236,  1107,    19,  1116,  1417,  1420,
     623,  1420,   636,   248,   636,  1295,   128,   953,   954,  1295,
     190,  1295,   635,  1422,    34,   128,   956,   957,  1422,  1245,
    1333,   164,   600,  1239,  1240,   170,  1239,  1239,   357,  1334,
    1219,  1338,   630,  1184,  1191,  1196,  1169,   251,   251,   375,
    1198,   251,   263,   452,  1198,  1182,  1169,  1307,  1308,  1410,
    1171,  1217,  1193,  1194,  1243,   321,  1232,   128,   958,   960,
    1422,   954,   114,   114,   129,   243,   213,   282,   357,   562,
     823,  1246,  1247,  1416,   805,   671,   823,   823,   799,   630,
     793,   997,  1412,  1072,    63,   189,   402,   572,   915,   974,
     997,   975,   976,   976,  1412,  1072,  1245,  1243,  1412,  1243,
      12,  1017,  1025,  1026,  1420,  1072,  1417,  1417,   952,  1296,
    1243,   254,  1025,   254,  1412,  1412,   899,  1296,   183,   257,
     353,   902,  1243,  1245,  1245,  1412,  1072,  1228,  1229,  1410,
     128,  1243,   128,  1243,  1249,   834,  1417,  1072,  1413,  1072,
    1072,    85,    87,   128,   149,   184,   380,   424,   901,  1243,
    1249,  1017,   896,     6,   145,  1029,   905,   906,   907,   908,
     909,  1420,     8,   183,  1041,   425,   914,   915,   967,   919,
     636,   128,  1246,  1417,  1420,   351,   400,    23,   169,   674,
     550,   138,   153,   676,   628,  1528,   628,   402,  1209,  1210,
    1211,  1420,   659,   660,  1243,  1417,  1244,   823,   823,   802,
     368,   205,  1296,   630,   796,   539,    19,   584,  1478,   449,
     628,   132,   237,   577,   781,   673,  1540,   126,   242,   419,
     516,   904,  1413,   267,   388,   825,   831,   832,   905,   831,
     630,   894,   664,   665,   666,   636,  1170,  1230,  1320,  1219,
    1119,   629,  1119,   542,   628,   943,   944,   944,   944,   628,
     938,   939,   943,  1161,   944,   242,   944,   242,   629,   629,
     629,    19,  1129,   629,   629,    19,   629,   629,   629,  1148,
    1119,  1119,   629,   629,   372,  1155,   630,   630,   629,   630,
     629,   244,  1140,  1141,   629,   629,   629,   629,   630,   629,
     629,  1119,   629,   190,   629,   629,   630,   629,   630,   630,
     629,  1119,   629,  1119,   629,  1119,   629,   629,   629,  1112,
    1515,   629,  1509,   636,   998,   629,  1163,  1121,   629,   630,
     629,  1115,  1145,   629,   605,  1355,  1482,   605,  1485,   623,
     623,  1476,  1476,  1476,   628,  1119,   362,  1302,  1089,  1413,
    1093,   226,  1096,  1378,   629,   630,  1115,   841,   388,   858,
     859,  1244,   843,  1423,  1108,  1293,  1294,  1410,  1298,   630,
     628,  1289,   629,   629,   630,   636,  1498,   725,   192,  1475,
    1475,  1475,  1219,  1219,   147,   376,  1255,  1256,  1261,   577,
     244,  1417,  1420,   636,  1420,   265,  1420,    12,    34,   128,
     362,  1119,  1442,    71,   959,  1119,  1423,   361,   389,   539,
    1441,  1435,  1295,  1235,  1240,  1235,  1343,   661,   571,   629,
    1502,  1192,   633,   251,  1182,  1198,  1198,   251,   362,   362,
     584,   630,  1306,  1295,  1207,  1208,  1108,  1119,  1233,  1408,
     793,  1019,   628,   254,   254,   976,   997,   982,   997,   997,
     145,   474,  1017,  1030,  1014,   630,  1244,   954,  1417,   997,
    1040,  1417,  1031,  1017,   630,    20,   133,  1234,   838,  1017,
    1022,  1017,   628,   629,   630,  1420,  1413,    33,    34,    39,
      41,    43,    44,    60,   115,   118,   126,   143,   160,   184,
     186,   199,   200,   242,   271,   280,   281,   283,   313,   314,
     315,   332,   333,   334,   339,   342,   358,   359,   394,   395,
     419,   470,   474,   486,   540,   543,   546,   547,   548,   549,
     590,   591,   616,   920,   928,   931,   932,   933,   934,   935,
     936,   937,  1420,   400,  1119,  1119,   362,   680,   686,   362,
      82,   681,  1420,  1529,    19,  1017,   629,   630,   629,   630,
     628,  1420,   823,   796,  1417,   904,  1547,   362,   362,   697,
     698,   700,  1420,   490,  1413,   881,   629,   226,   440,   828,
    1384,   894,   628,   628,   628,  1420,  1219,   268,  1241,  1213,
    1119,   125,   282,   357,   562,    21,    34,    48,   569,   952,
     962,   963,   964,   357,   628,   939,   945,   115,   118,   126,
     143,   186,   242,   339,   342,   419,   546,   575,   932,   933,
    1130,  1160,   629,  1213,  1213,    47,   468,  1154,  1119,  1119,
    1163,    43,   340,   629,   605,  1142,  1119,  1213,  1119,  1119,
    1119,  1119,   629,   629,   629,  1190,  1507,  1420,   629,  1163,
    1116,   417,   203,   442,  1483,  1483,  1483,   128,  1119,  1300,
    1301,   148,  1096,   261,  1384,   845,   629,   210,   254,   860,
     629,   630,   629,  1112,   630,  1295,  1299,  1300,  1297,  1291,
    1289,  1406,  1420,  1475,  1236,   205,  1224,  1419,  1419,   635,
    1257,  1258,  1422,   476,   623,   417,   438,   469,  1440,   960,
    1295,   628,   628,  1439,  1119,  1506,  1217,  1172,  1169,  1182,
     251,   251,  1169,  1182,  1175,  1174,  1176,  1308,  1219,  1301,
    1205,  1206,  1112,   630,  1234,   387,   628,  1020,  1119,   997,
     982,   628,   981,   981,   128,   128,   918,  1067,  1026,   959,
     920,  1013,  1229,  1023,  1025,  1015,  1358,   907,   628,   968,
     943,   943,   944,   944,   938,   398,   929,   938,   938,   964,
      60,   590,   932,   934,   964,   964,    60,   591,   591,   594,
     938,   930,   944,   944,   944,   964,   943,   944,    26,    71,
      82,   128,   198,   356,   362,   402,   470,   572,   921,   946,
     947,   948,   966,  1125,  1416,   594,   943,   964,    34,   943,
     965,   943,   943,   944,   945,   636,  1213,   484,  1417,   144,
    1010,   629,   630,  1530,  1531,   629,  1210,   660,   670,   490,
     235,   244,   377,   701,   702,   703,   704,  1114,   461,   629,
     630,   699,  1417,   629,   629,   826,    19,   884,   995,   996,
    1420,   995,   995,   456,  1239,   629,   629,   629,   629,   629,
      34,    21,   569,   952,    34,   953,   630,   357,   944,   938,
      60,   944,   242,   964,   629,   629,   629,  1156,  1401,   629,
     629,   630,   629,   327,   256,   412,   629,   629,   629,   629,
     629,   629,   903,  1107,  1236,  1502,   629,   277,   369,    64,
     249,   349,   506,   519,   611,  1472,  1473,   605,  1484,  1484,
    1484,   629,   630,  1303,   241,   628,   848,   842,   861,  1420,
     859,   883,  1294,  1301,   629,  1501,    47,   211,  1221,  1262,
    1422,   630,   327,    83,   563,   417,  1441,   539,   539,  1295,
    1185,   362,  1178,  1182,  1182,   362,  1180,  1119,  1119,   628,
    1230,   188,   226,   583,  1200,  1201,  1204,  1195,  1408,  1244,
     858,   629,   628,   628,   995,   628,   628,   118,   543,   546,
     621,   622,  1403,  1404,  1041,  1032,  1072,  1024,  1059,   629,
     969,  1420,   304,   970,   482,   575,   617,   940,   941,   942,
     628,   940,   940,   964,   594,   940,   628,   964,   940,   958,
    1417,   352,   950,  1403,    14,   577,   128,   254,    19,   948,
     254,   356,  1295,   964,   965,   964,   965,   940,   940,  1420,
     675,   682,   683,  1420,   466,   628,  1532,   629,  1417,   629,
     630,   699,  1535,   674,  1541,   700,   928,   949,   827,   892,
     628,   881,   629,   630,  1234,   628,   629,   629,   170,   456,
     953,   965,   357,  1157,  1408,  1119,   327,   174,  1111,  1111,
      17,  1359,   539,   539,   539,    17,  1471,   203,   305,   306,
     310,   311,  1486,  1487,  1301,   254,   533,  1114,   851,   628,
     588,   862,   903,  1225,  1408,  1222,  1230,   952,   955,  1258,
     629,   629,  1442,  1507,  1177,   584,  1179,   584,  1212,  1420,
    1241,   975,   975,  1201,   903,  1234,   629,   995,   995,   629,
     995,   995,  1405,  1405,  1041,   241,   629,   630,   193,   385,
     483,   362,   971,   942,   999,  1401,   999,  1118,   352,   589,
     628,   128,  1246,  1417,  1420,   508,   677,    53,    68,   181,
     225,   250,   262,   366,   450,   684,   731,   733,   734,   735,
     737,   738,   739,   740,   741,   742,   744,   752,   753,   756,
     767,   770,   772,   773,  1416,  1421,  1425,  1101,  1099,   605,
    1533,  1548,   703,  1420,  1413,   679,   680,   449,   959,  1501,
     831,   881,   829,    82,   253,   983,   986,   989,   990,   991,
    1416,   996,   357,   605,   984,   988,   990,   993,   985,   987,
     990,   992,   170,   629,   630,  1234,   629,   138,  1472,   369,
    1243,  1243,  1243,   357,   621,  1242,  1487,   577,  1413,   855,
     520,   856,   853,   854,  1420,   244,   264,    82,    90,   114,
     230,   307,   325,   348,   530,   878,   879,   880,  1337,   606,
     607,   630,  1226,  1234,  1119,  1236,   954,  1263,  1186,  1119,
     628,  1119,   628,   629,   630,   190,  1199,  1199,   629,   629,
     910,   629,   629,   628,  1420,   132,   577,   629,   630,   629,
    1118,   927,  1119,   156,   678,   754,   757,  1420,   192,   347,
     745,   732,  1421,  1421,  1420,   736,   643,   284,   439,   604,
     776,    31,   774,   637,   629,    52,    63,   274,   688,   949,
     190,   676,  1542,   828,   629,  1498,  1417,  1296,   991,  1295,
    1234,   629,   383,   993,   992,  1408,    61,   282,   357,  1309,
    1310,  1410,  1379,  1115,  1244,   629,   630,   864,   541,  1296,
    1296,   137,   137,  1296,  1296,  1296,  1296,   628,   873,   880,
     159,  1408,   404,  1250,    73,  1385,  1502,  1212,  1212,  1420,
     205,   251,   372,  1203,  1202,   967,   913,   983,   911,   912,
     858,    51,   353,   447,   474,   972,   972,   964,  1401,   964,
     629,  1119,  1119,   602,   759,   763,   192,  1420,   747,   748,
    1119,   706,   730,   731,   733,   735,   737,   739,   740,   741,
     742,   744,   752,   767,   770,   772,   706,   777,   775,   768,
     771,  1501,    63,   369,    63,   136,   689,   690,  1125,  1549,
    1114,   681,   949,   830,  1243,   128,  1246,  1417,  1420,  1416,
    1234,   630,  1295,   955,   629,   852,   854,   628,   866,   868,
     863,  1417,  1417,  1296,  1296,  1246,  1246,  1244,  1422,   521,
     874,   875,  1296,  1234,  1420,   154,   165,   370,   538,  1386,
    1387,   270,  1388,   629,   629,    47,    47,   628,   628,   983,
     984,   985,   629,     5,   128,   356,   362,   362,   390,   598,
     922,   755,   764,   151,   763,   766,   241,   155,  1119,   155,
     730,   634,   576,  1119,   707,   776,   774,   369,   369,   136,
     730,  1536,   144,  1543,  1501,  1310,  1301,  1380,   856,   628,
     867,   868,   869,   312,   865,   868,  1417,  1417,   876,   629,
     630,   899,  1251,    47,    47,   154,    47,  1387,   507,   538,
    1389,  1390,  1209,  1211,   577,   132,    82,   572,   923,   924,
     925,   602,   758,   760,  1119,   706,   155,   743,   225,   542,
     284,   634,   779,   144,   127,   705,   708,   769,  1421,   769,
     150,   682,   688,   456,  1391,   629,   630,   312,   871,   872,
    1122,   877,  1422,   875,   628,  1401,  1401,    47,  1401,    47,
      47,  1390,   629,   629,   972,   972,  1417,   254,   925,   761,
     760,   766,   765,    53,   746,  1420,   749,  1119,   778,    98,
     173,   713,   728,  1420,   155,   730,   634,   458,  1544,   223,
    1385,   868,   630,   870,   878,  1114,  1252,  1253,  1254,  1401,
    1401,  1401,  1119,   155,   542,   630,   706,   155,   706,   208,
     630,   709,    89,   108,   634,  1537,   730,    47,  1388,   872,
     629,  1119,   629,   630,   762,    53,   706,  1420,   750,   439,
     155,   190,  1420,   949,   190,   190,   730,  1401,   226,  1392,
    1115,  1254,   542,   151,   152,   751,   604,   710,   128,   729,
     716,   717,  1243,   711,   712,   357,   628,  1394,   706,   706,
     747,   495,   497,   714,   715,   716,   719,  1125,  1420,  1119,
    1097,   270,   456,  1393,   629,   635,  1395,  1396,  1410,   474,
    1397,   630,   730,   191,  1422,   629,   630,  1398,  1399,  1410,
     715,  1396,   630,  1295,  1399,  1114,  1301,  1115
};

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrorlab


/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK (1);						\
      goto yybackup;						\
    }								\
  else								\
    {								\
      yyerror (thd, YY_("syntax error: cannot back up")); \
      YYERROR;							\
    }								\
while (YYID (0))


#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* YY_LOCATION_PRINT -- Print the location on the stream.
   This macro was not mandated originally: define only if we know
   we won't break user code: when these are the locations we know.  */

#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
#  define YY_LOCATION_PRINT(File, Loc)			\
     fprintf (File, "%d.%d-%d.%d",			\
	      (Loc).first_line, (Loc).first_column,	\
	      (Loc).last_line,  (Loc).last_column)
# else
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval, thd)
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (YYID (0))

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
do {									  \
  if (yydebug)								  \
    {									  \
      YYFPRINTF (stderr, "%s ", Title);					  \
      yy_symbol_print (stderr,						  \
		  Type, Value, thd); \
      YYFPRINTF (stderr, "\n");						  \
    }									  \
} while (YYID (0))


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, THD *thd)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep, thd)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
    THD *thd;
#endif
{
  if (!yyvaluep)
    return;
  YYUSE (thd);
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
  YYUSE (yyoutput);
# endif
  switch (yytype)
    {
      default:
	break;
    }
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, THD *thd)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep, thd)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
    THD *thd;
#endif
{
  if (yytype < YYNTOKENS)
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  yy_symbol_value_print (yyoutput, yytype, yyvaluep, thd);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
#else
static void
yy_stack_print (yybottom, yytop)
    yytype_int16 *yybottom;
    yytype_int16 *yytop;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; yybottom <= yytop; yybottom++)
    {
      int yybot = *yybottom;
      YYFPRINTF (stderr, " %d", yybot);
    }
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (YYID (0))


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule, THD *thd)
#else
static void
yy_reduce_print (yyvsp, yyrule, thd)
    YYSTYPE *yyvsp;
    int yyrule;
    THD *thd;
#endif
{
  int yynrhs = yyr2[yyrule];
  int yyi;
  unsigned long int yylno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
	     yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       		       , thd);
      YYFPRINTF (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (yyvsp, Rule, thd); \
} while (YYID (0))

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined __GLIBC__ && defined _STRING_H
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
    const char *yystr;
#endif
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
    char *yydest;
    const char *yysrc;
#endif
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
	switch (*++yyp)
	  {
	  case '\'':
	  case ',':
	    goto do_not_strip_quotes;

	  case '\\':
	    if (*++yyp != '\\')
	      goto do_not_strip_quotes;
	    /* Fall through.  */
	  default:
	    if (yyres)
	      yyres[yyn] = *yyp;
	    yyn++;
	    break;

	  case '"':
	    if (yyres)
	      yyres[yyn] = '\0';
	    return yyn;
	  }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into YYRESULT an error message about the unexpected token
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   including the terminating null byte.  If YYRESULT is null, do not
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   size calculation.  */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
  int yyn = yypact[yystate];

  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    return 0;
  else
    {
      int yytype = YYTRANSLATE (yychar);
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
      YYSIZE_T yysize = yysize0;
      YYSIZE_T yysize1;
      int yysize_overflow = 0;
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
      int yyx;

# if 0
      /* This is so xgettext sees the translatable formats that are
	 constructed on the fly.  */
      YY_("syntax error, unexpected %s");
      YY_("syntax error, unexpected %s, expecting %s");
      YY_("syntax error, unexpected %s, expecting %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
      char *yyfmt;
      char const *yyf;
      static char const yyunexpected[] = "syntax error, unexpected %s";
      static char const yyexpecting[] = ", expecting %s";
      static char const yyor[] = " or %s";
      char yyformat[sizeof yyunexpected
		    + sizeof yyexpecting - 1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
		       * (sizeof yyor - 1))];
      char const *yyprefix = yyexpecting;

      /* Start YYX at -YYN if negative to avoid negative indexes in
	 YYCHECK.  */
      int yyxbegin = yyn < 0 ? -yyn : 0;

      /* Stay within bounds of both yycheck and yytname.  */
      int yychecklim = YYLAST - yyn + 1;
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
      int yycount = 1;

      yyarg[0] = yytname[yytype];
      yyfmt = yystpcpy (yyformat, yyunexpected);

      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	  {
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
	      {
		yycount = 1;
		yysize = yysize0;
		yyformat[sizeof yyunexpected - 1] = '\0';
		break;
	      }
	    yyarg[yycount++] = yytname[yyx];
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
	    yysize_overflow |= (yysize1 < yysize);
	    yysize = yysize1;
	    yyfmt = yystpcpy (yyfmt, yyprefix);
	    yyprefix = yyor;
	  }

      yyf = YY_(yyformat);
      yysize1 = yysize + yystrlen (yyf);
      yysize_overflow |= (yysize1 < yysize);
      yysize = yysize1;

      if (yysize_overflow)
	return YYSIZE_MAXIMUM;

      if (yyresult)
	{
	  /* Avoid sprintf, as that infringes on the user's name space.
	     Don't have undefined behavior even if the translation
	     produced a string with the wrong number of "%s"s.  */
	  char *yyp = yyresult;
	  int yyi = 0;
	  while ((*yyp = *yyf) != '\0')
	    {
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
		{
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
		  yyf += 2;
		}
	      else
		{
		  yyp++;
		  yyf++;
		}
	    }
	}
      return yysize;
    }
}
#endif /* YYERROR_VERBOSE */


/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, THD *thd)
#else
static void
yydestruct (yymsg, yytype, yyvaluep, thd)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
    THD *thd;
#endif
{
  YYUSE (yyvaluep);
  YYUSE (thd);

  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  switch (yytype)
    {

      default:
	break;
    }
}

/* Prevent warnings from -Wmissing-prototypes.  */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (THD *thd);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */





/*-------------------------.
| yyparse or yypush_parse.  |
`-------------------------*/

#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
    void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (THD *thd)
#else
int
yyparse (thd)
    THD *thd;
#endif
#endif
{
/* The lookahead symbol.  */
int yychar;

/* The semantic value of the lookahead symbol.  */
YYSTYPE yylval;

    /* Number of syntax errors so far.  */
    int yynerrs;

    int yystate;
    /* Number of tokens to shift before error messages enabled.  */
    int yyerrstatus;

    /* The stacks and their tools:
       `yyss': related to states.
       `yyvs': related to semantic values.

       Refer to the stacks thru separate pointers, to allow yyoverflow
       to reallocate them elsewhere.  */

    /* The state stack.  */
    yytype_int16 yyssa[YYINITDEPTH];
    yytype_int16 *yyss;
    yytype_int16 *yyssp;

    /* The semantic value stack.  */
    YYSTYPE yyvsa[YYINITDEPTH];
    YYSTYPE *yyvs;
    YYSTYPE *yyvsp;

    YYSIZE_T yystacksize;

  int yyn;
  int yyresult;
  /* Lookahead token as an internal (translated) token number.  */
  int yytoken;
  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;

#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  yytoken = 0;
  yyss = yyssa;
  yyvs = yyvsa;
  yystacksize = YYINITDEPTH;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY; /* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */
  yyssp = yyss;
  yyvsp = yyvs;

  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack.  Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	yytype_int16 *yyss1 = yyss;

	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow (YY_("memory exhausted"),
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),
		    &yystacksize);

	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	yytype_int16 *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyexhaustedlab;
	YYSTACK_RELOCATE (yyss_alloc, yyss);
	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;

      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  if (yystate == YYFINAL)
    YYACCEPT;

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     lookahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to lookahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a lookahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the lookahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token.  */
  yychar = YYEMPTY;

  yystate = yyn;
  *++yyvsp = yylval;

  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];


  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:

/* Line 1455 of yacc.c  */
#line 1700 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!thd->bootstrap &&
              (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
            {
              my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
              MYSQL_YYABORT;
            }
            thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
            YYLIP->found_semicolon= NULL;
          }
    break;

  case 3:

/* Line 1455 of yacc.c  */
#line 1711 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex_input_stream *lip = YYLIP;

            if ((thd->client_capabilities & CLIENT_MULTI_QUERIES) &&
                lip->multi_statements &&
                ! lip->eof())
            {
              /*
                We found a well formed query, and multi queries are allowed:
                - force the parser to stop after the ';'
                - mark the start of the next query for the next invocation
                  of the parser.
              */
              lip->next_state= MY_LEX_END;
              lip->found_semicolon= lip->get_ptr();
            }
            else
            {
              /* Single query, terminated. */
              lip->found_semicolon= NULL;
            }
          }
    break;

  case 5:

/* Line 1455 of yacc.c  */
#line 1736 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* Single query, not terminated. */
            YYLIP->found_semicolon= NULL;
          }
    break;

  case 63:

/* Line 1455 of yacc.c  */
#line 1811 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 66:

/* Line 1455 of yacc.c  */
#line 1825 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(2) - (4)].lex_str);
          }
    break;

  case 67:

/* Line 1455 of yacc.c  */
#line 1834 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(1) - (1)].lex_str);
            lex->prepared_stmt_code_is_varref= FALSE;
          }
    break;

  case 68:

/* Line 1455 of yacc.c  */
#line 1840 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(2) - (2)].lex_str);
            lex->prepared_stmt_code_is_varref= TRUE;
          }
    break;

  case 69:

/* Line 1455 of yacc.c  */
#line 1849 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_EXECUTE;
            lex->prepared_stmt_name= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 70:

/* Line 1455 of yacc.c  */
#line 1855 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 75:

/* Line 1455 of yacc.c  */
#line 1870 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[(2) - (2)].lex_str), sizeof(LEX_STRING));
            if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
              MYSQL_YYABORT;
          }
    break;

  case 76:

/* Line 1455 of yacc.c  */
#line 1882 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
              MYSQL_YYABORT;
            }
          }
    break;

  case 77:

/* Line 1455 of yacc.c  */
#line 1890 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_HELP;
            lex->help_arg= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 78:

/* Line 1455 of yacc.c  */
#line 1901 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_CHANGE_MASTER;
          }
    break;

  case 79:

/* Line 1455 of yacc.c  */
#line 1905 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 82:

/* Line 1455 of yacc.c  */
#line 1915 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.host = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 83:

/* Line 1455 of yacc.c  */
#line 1919 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.user = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 84:

/* Line 1455 of yacc.c  */
#line 1923 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.password = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 85:

/* Line 1455 of yacc.c  */
#line 1927 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.port = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 86:

/* Line 1455 of yacc.c  */
#line 1931 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.connect_retry = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 87:

/* Line 1455 of yacc.c  */
#line 1935 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl= (yyvsp[(3) - (3)].ulong_num) ? 
              LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
          }
    break;

  case 88:

/* Line 1455 of yacc.c  */
#line 1940 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl_ca= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 89:

/* Line 1455 of yacc.c  */
#line 1944 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl_capath= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 90:

/* Line 1455 of yacc.c  */
#line 1948 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl_cert= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 91:

/* Line 1455 of yacc.c  */
#line 1952 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl_cipher= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 92:

/* Line 1455 of yacc.c  */
#line 1956 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl_key= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 93:

/* Line 1455 of yacc.c  */
#line 1960 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.ssl_verify_server_cert= (yyvsp[(3) - (3)].ulong_num) ?
              LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
          }
    break;

  case 94:

/* Line 1455 of yacc.c  */
#line 1966 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.heartbeat_period= (float) (yyvsp[(3) - (3)].item_num)->val_real();
            if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
                Lex->mi.heartbeat_period < 0.0)
            {
               const char format[]= "%d";
               char buf[4*sizeof(SLAVE_MAX_HEARTBEAT_PERIOD) + sizeof(format)];
               sprintf(buf, format, SLAVE_MAX_HEARTBEAT_PERIOD);
               my_error(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE, MYF(0), buf);
               MYSQL_YYABORT;
            }
            if (Lex->mi.heartbeat_period > slave_net_timeout)
            {
              push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX,
                                  ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX));
            }
            if (Lex->mi.heartbeat_period < 0.001)
            {
              if (Lex->mi.heartbeat_period != 0.0)
              {
                push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                                    ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN,
                                    ER(ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN));
                Lex->mi.heartbeat_period= 0.0;
              }
              Lex->mi.heartbeat_opt=  LEX_MASTER_INFO::LEX_MI_DISABLE;
            }
            Lex->mi.heartbeat_opt=  LEX_MASTER_INFO::LEX_MI_ENABLE;
          }
    break;

  case 95:

/* Line 1455 of yacc.c  */
#line 1997 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE;
           }
    break;

  case 100:

/* Line 1455 of yacc.c  */
#line 2012 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[(1) - (1)].ulong_num)));
          }
    break;

  case 101:

/* Line 1455 of yacc.c  */
#line 2018 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.log_file_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 102:

/* Line 1455 of yacc.c  */
#line 2022 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.pos = (yyvsp[(3) - (3)].ulonglong_number);
            /* 
               If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
               instead of causing subsequent errors. 
               We need to do it in this file, because only there we know that 
               MASTER_LOG_POS has been explicitely specified. On the contrary
               in change_master() (sql_repl.cc) we cannot distinguish between 0
               (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
               whereas we want to distinguish (specified 0 means "read the binlog
               from 0" (4 in fact), unspecified means "don't change the position
               (keep the preceding value)").
            */
            Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
          }
    break;

  case 103:

/* Line 1455 of yacc.c  */
#line 2038 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.relay_log_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 104:

/* Line 1455 of yacc.c  */
#line 2042 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->mi.relay_log_pos = (yyvsp[(3) - (3)].ulong_num);
            /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
            Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
          }
    break;

  case 105:

/* Line 1455 of yacc.c  */
#line 2053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_TABLE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(5) - (5)].table), NULL,
                                                   TL_OPTION_UPDATING,
                                                   TL_WRITE, MDL_EXCLUSIVE))
              MYSQL_YYABORT;
            /*
              For CREATE TABLE, an non-existing table is not an error.
              Instruct open_tables() to just take an MDL lock if the
              table does not exist.
            */
            lex->query_tables->open_strategy= TABLE_LIST::OPEN_IF_EXISTS;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->change=NullS;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.options=(yyvsp[(2) - (5)].num) | (yyvsp[(4) - (5)].num);
            lex->create_info.default_table_charset= NULL;
            lex->name.str= 0;
            lex->name.length= 0;
            lex->create_last_non_select_table= lex->last_table();
          }
    break;

  case 106:

/* Line 1455 of yacc.c  */
#line 2077 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->current_select= &lex->select_lex; 
            if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
                !lex->create_info.db_type)
            {
              lex->create_info.db_type= ha_default_handlerton(thd);
              push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_WARN_USING_OTHER_HANDLER,
                                  ER(ER_WARN_USING_OTHER_HANDLER),
                                  hton_name(lex->create_info.db_type)->str,
                                  (yyvsp[(5) - (7)].table)->table.str);
            }
            create_table_set_open_action_and_adjust_tables(lex);
          }
    break;

  case 107:

/* Line 1455 of yacc.c  */
#line 2093 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 108:

/* Line 1455 of yacc.c  */
#line 2098 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 109:

/* Line 1455 of yacc.c  */
#line 2104 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 110:

/* Line 1455 of yacc.c  */
#line 2109 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 111:

/* Line 1455 of yacc.c  */
#line 2115 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
              MYSQL_YYABORT;
          }
    break;

  case 112:

/* Line 1455 of yacc.c  */
#line 2120 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 113:

/* Line 1455 of yacc.c  */
#line 2125 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 114:

/* Line 1455 of yacc.c  */
#line 2130 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CREATE_DB;
            lex->name= (yyvsp[(4) - (6)].lex_str);
            lex->create_info.options=(yyvsp[(3) - (6)].num);
          }
    break;

  case 115:

/* Line 1455 of yacc.c  */
#line 2137 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_view_mode= VIEW_CREATE_NEW;
            Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED;
            Lex->create_view_suid= TRUE;
          }
    break;

  case 116:

/* Line 1455 of yacc.c  */
#line 2143 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 117:

/* Line 1455 of yacc.c  */
#line 2145 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_CREATE_USER;
          }
    break;

  case 118:

/* Line 1455 of yacc.c  */
#line 2149 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
          }
    break;

  case 119:

/* Line 1455 of yacc.c  */
#line 2153 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
          }
    break;

  case 120:

/* Line 1455 of yacc.c  */
#line 2157 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_CREATE_SERVER;
          }
    break;

  case 121:

/* Line 1455 of yacc.c  */
#line 2168 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.server_name= (yyvsp[(2) - (10)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(2) - (10)].lex_str).length;
            Lex->server_options.scheme= (yyvsp[(6) - (10)].lex_str).str;
          }
    break;

  case 124:

/* Line 1455 of yacc.c  */
#line 2182 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.username= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 125:

/* Line 1455 of yacc.c  */
#line 2186 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.host= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 126:

/* Line 1455 of yacc.c  */
#line 2190 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 127:

/* Line 1455 of yacc.c  */
#line 2194 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.owner= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 128:

/* Line 1455 of yacc.c  */
#line 2198 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.password= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 129:

/* Line 1455 of yacc.c  */
#line 2202 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.socket= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 130:

/* Line 1455 of yacc.c  */
#line 2206 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->server_options.port= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 131:

/* Line 1455 of yacc.c  */
#line 2213 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->stmt_definition_begin= (yyvsp[(1) - (4)].simple_string);
            lex->create_info.options= (yyvsp[(3) - (4)].num);
            if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
              MYSQL_YYABORT;
            lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);
            lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_DROP;

            lex->sql_command= SQLCOM_CREATE_EVENT;
            /* We need that for disallowing subqueries */
          }
    break;

  case 132:

/* Line 1455 of yacc.c  */
#line 2232 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_CREATE_EVENT;
          }
    break;

  case 133:

/* Line 1455 of yacc.c  */
#line 2243 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->item_expression= (yyvsp[(2) - (3)].item);
            Lex->event_parse_data->interval= (yyvsp[(3) - (3)].interval);
          }
    break;

  case 135:

/* Line 1455 of yacc.c  */
#line 2250 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->item_execute_at= (yyvsp[(2) - (2)].item);
          }
    break;

  case 136:

/* Line 1455 of yacc.c  */
#line 2256 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 137:

/* Line 1455 of yacc.c  */
#line 2258 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::ENABLED;
            Lex->event_parse_data->status_changed= true;
            (yyval.num)= 1;
          }
    break;

  case 138:

/* Line 1455 of yacc.c  */
#line 2264 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::SLAVESIDE_DISABLED;
            Lex->event_parse_data->status_changed= true; 
            (yyval.num)= 1;
          }
    break;

  case 139:

/* Line 1455 of yacc.c  */
#line 2270 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_parse_data::DISABLED;
            Lex->event_parse_data->status_changed= true;
            (yyval.num)= 1;
          }
    break;

  case 140:

/* Line 1455 of yacc.c  */
#line 2279 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root) Item_func_now_local(0);
            if (item == NULL)
              MYSQL_YYABORT;
            Lex->event_parse_data->item_starts= item;
          }
    break;

  case 141:

/* Line 1455 of yacc.c  */
#line 2286 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= (yyvsp[(2) - (2)].item);
          }
    break;

  case 143:

/* Line 1455 of yacc.c  */
#line 2294 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->item_ends= (yyvsp[(2) - (2)].item);
          }
    break;

  case 144:

/* Line 1455 of yacc.c  */
#line 2300 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 146:

/* Line 1455 of yacc.c  */
#line 2306 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_PRESERVE;
            (yyval.num)= 1;
          }
    break;

  case 147:

/* Line 1455 of yacc.c  */
#line 2312 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_parse_data::ON_COMPLETION_DROP;
            (yyval.num)= 1;
          }
    break;

  case 148:

/* Line 1455 of yacc.c  */
#line 2320 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 149:

/* Line 1455 of yacc.c  */
#line 2322 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->comment= Lex->event_parse_data->comment= (yyvsp[(2) - (2)].lex_str);
            (yyval.num)= 1;
          }
    break;

  case 150:

/* Line 1455 of yacc.c  */
#line 2329 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            /*
              This stops the following :
              - CREATE EVENT ... DO CREATE EVENT ...;
              - ALTER  EVENT ... DO CREATE EVENT ...;
              - CREATE EVENT ... DO ALTER EVENT DO ....;
              - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
              This allows:
              - CREATE EVENT ... DO DROP EVENT yyy;
              - CREATE EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO DROP EVENT yyy;
              - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
                (the nested ALTER EVENT can have anything but DO clause)
              - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
            */
            if (lex->sphead)
            {
              my_error(ER_EVENT_RECURSION_FORBIDDEN, MYF(0));
              MYSQL_YYABORT;
            }
              
            if (!(lex->sphead= new sp_head()))
              MYSQL_YYABORT;

            lex->sphead->reset_thd_mem_root(thd);
            lex->sphead->init(lex);
            lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);

            lex->sphead->m_type= TYPE_ENUM_PROCEDURE;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;

            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 151:

/* Line 1455 of yacc.c  */
#line 2371 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;

            /* return back to the original memory root ASAP */
            lex->sphead->set_stmt_end(thd);
            lex->sphead->restore_thd_mem_root(thd);

            lex->sp_chistics.suid= SP_IS_SUID;  //always the definer!

            lex->event_parse_data->body_changed= TRUE;
          }
    break;

  case 165:

/* Line 1455 of yacc.c  */
#line 2402 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
           LEX *lex=Lex;
           lex->users_list.empty();
           lex->columns.empty();
           lex->grant= lex->grant_tot_col= 0;
           lex->all_privileges= 0;
           lex->select_lex.db= 0;
           lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
           lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
           bzero((char *)&(lex->mqh),sizeof(lex->mqh));
         }
    break;

  case 166:

/* Line 1455 of yacc.c  */
#line 2417 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!(yyvsp[(1) - (3)].lex_str).str || check_db_name(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (check_routine_name(&(yyvsp[(3) - (3)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            (yyval.spname)= new sp_name((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true);
            if ((yyval.spname) == NULL)
              MYSQL_YYABORT;
            (yyval.spname)->init_qname(thd);
          }
    break;

  case 167:

/* Line 1455 of yacc.c  */
#line 2433 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            LEX_STRING db;
            if (check_routine_name(&(yyvsp[(1) - (1)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            if (lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            (yyval.spname)= new sp_name(db, (yyvsp[(1) - (1)].lex_str), false);
            if ((yyval.spname) == NULL)
              MYSQL_YYABORT;
            (yyval.spname)->init_qname(thd);
          }
    break;

  case 168:

/* Line 1455 of yacc.c  */
#line 2450 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 169:

/* Line 1455 of yacc.c  */
#line 2451 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 170:

/* Line 1455 of yacc.c  */
#line 2455 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 171:

/* Line 1455 of yacc.c  */
#line 2456 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 172:

/* Line 1455 of yacc.c  */
#line 2462 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 173:

/* Line 1455 of yacc.c  */
#line 2464 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* Just parse it, we only have one language for now. */ }
    break;

  case 174:

/* Line 1455 of yacc.c  */
#line 2466 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_NO_SQL; }
    break;

  case 175:

/* Line 1455 of yacc.c  */
#line 2468 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
    break;

  case 176:

/* Line 1455 of yacc.c  */
#line 2470 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
    break;

  case 177:

/* Line 1455 of yacc.c  */
#line 2472 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
    break;

  case 178:

/* Line 1455 of yacc.c  */
#line 2474 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 179:

/* Line 1455 of yacc.c  */
#line 2479 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 180:

/* Line 1455 of yacc.c  */
#line 2480 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.detistic= TRUE; }
    break;

  case 181:

/* Line 1455 of yacc.c  */
#line 2481 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sp_chistics.detistic= FALSE; }
    break;

  case 182:

/* Line 1455 of yacc.c  */
#line 2486 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_SUID;
          }
    break;

  case 183:

/* Line 1455 of yacc.c  */
#line 2490 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_NOT_SUID;
          }
    break;

  case 184:

/* Line 1455 of yacc.c  */
#line 2497 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex = Lex;

            lex->sql_command= SQLCOM_CALL;
            lex->spname= (yyvsp[(2) - (2)].spname);
            lex->value_list.empty();
            sp_add_used_routine(lex, thd, (yyvsp[(2) - (2)].spname), TYPE_ENUM_PROCEDURE);
          }
    break;

  case 185:

/* Line 1455 of yacc.c  */
#line 2505 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 190:

/* Line 1455 of yacc.c  */
#line 2521 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
           Lex->value_list.push_back((yyvsp[(3) - (3)].item));
          }
    break;

  case 191:

/* Line 1455 of yacc.c  */
#line 2525 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->value_list.push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 196:

/* Line 1455 of yacc.c  */
#line 2543 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->length= 0;
            lex->dec= 0;
            lex->type= 0;

            lex->default_value= 0;
            lex->on_update_value= 0;

            lex->comment= null_lex_str;
            lex->charset= NULL;

            lex->interval_list.empty();
            lex->uint_geom_type= 0;
            lex->vcol_info= 0;
          }
    break;

  case 197:

/* Line 1455 of yacc.c  */
#line 2564 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(1) - (3)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(3) - (3)].num),
                                                     sp_param_in);

            if (lex->sphead->fill_field_definition(thd, lex,
                                                   (enum enum_field_types) (yyvsp[(3) - (3)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 202:

/* Line 1455 of yacc.c  */
#line 2601 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (4)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(3) - (4)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(4) - (4)].num),
                                                     (sp_param_mode_t)(yyvsp[(1) - (4)].num));

            if (lex->sphead->fill_field_definition(thd, lex,
                                                   (enum enum_field_types) (yyvsp[(4) - (4)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 203:

/* Line 1455 of yacc.c  */
#line 2626 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 204:

/* Line 1455 of yacc.c  */
#line 2627 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 205:

/* Line 1455 of yacc.c  */
#line 2628 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= sp_param_out; }
    break;

  case 206:

/* Line 1455 of yacc.c  */
#line 2629 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= sp_param_inout; }
    break;

  case 207:

/* Line 1455 of yacc.c  */
#line 2633 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 209:

/* Line 1455 of yacc.c  */
#line 2638 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 211:

/* Line 1455 of yacc.c  */
#line 2644 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 212:

/* Line 1455 of yacc.c  */
#line 2648 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* We check for declarations out of (standard) order this way
              because letting the grammar rules reflect it caused tricky
               shift/reduce conflicts with the wrong result. (And we get
               better error handling this way.) */
            if (((yyvsp[(2) - (3)].spblock).vars || (yyvsp[(2) - (3)].spblock).conds) && ((yyvsp[(1) - (3)].spblock).curs || (yyvsp[(1) - (3)].spblock).hndlrs))
            { /* Variable or condition following cursor or handler */
              my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
                         ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0));
              MYSQL_YYABORT;
            }
            if ((yyvsp[(2) - (3)].spblock).curs && (yyvsp[(1) - (3)].spblock).hndlrs)
            { /* Cursor following handler */
              my_message(ER_SP_CURSOR_AFTER_HANDLER,
                         ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.spblock).vars= (yyvsp[(1) - (3)].spblock).vars + (yyvsp[(2) - (3)].spblock).vars;
            (yyval.spblock).conds= (yyvsp[(1) - (3)].spblock).conds + (yyvsp[(2) - (3)].spblock).conds;
            (yyval.spblock).hndlrs= (yyvsp[(1) - (3)].spblock).hndlrs + (yyvsp[(2) - (3)].spblock).hndlrs;
            (yyval.spblock).curs= (yyvsp[(1) - (3)].spblock).curs + (yyvsp[(2) - (3)].spblock).curs;
          }
    break;

  case 213:

/* Line 1455 of yacc.c  */
#line 2674 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->reset_lex(thd);
            lex->spcont->declare_var_boundary((yyvsp[(2) - (2)].num));
          }
    break;

  case 214:

/* Line 1455 of yacc.c  */
#line 2682 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *pctx= lex->spcont;
            uint num_vars= pctx->context_var_count();
            enum enum_field_types var_type= (enum enum_field_types) (yyvsp[(4) - (5)].num);
            Item *dflt_value_item= (yyvsp[(5) - (5)].item);
            
            if (!dflt_value_item)
            {
              dflt_value_item= new (thd->mem_root) Item_null();
              if (dflt_value_item == NULL)
                MYSQL_YYABORT;
              /* QQ Set to the var_type with null_value? */
            }
            
            for (uint i = num_vars-(yyvsp[(2) - (5)].num) ; i < num_vars ; i++)
            {
              uint var_idx= pctx->var_context2runtime(i);
              sp_variable_t *spvar= pctx->find_variable(var_idx);
            
              if (!spvar)
                MYSQL_YYABORT;
            
              spvar->type= var_type;
              spvar->dflt= dflt_value_item;
            
              if (lex->sphead->fill_field_definition(thd, lex, var_type,
                                                     &spvar->field_def))
              {
                MYSQL_YYABORT;
              }
            
              spvar->field_def.field_name= spvar->name.str;
              spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
            
              /* The last instruction is responsible for freeing LEX. */

              sp_instr_set *is= new sp_instr_set(lex->sphead->instructions(),
                                                 pctx,
                                                 var_idx,
                                                 dflt_value_item,
                                                 var_type,
                                                 lex,
                                                 (i == num_vars - 1));
              if (is == NULL ||
                  lex->sphead->add_instr(is))
                MYSQL_YYABORT;
            }

            pctx->declare_var_boundary(0);
            if (lex->sphead->restore_lex(thd))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyvsp[(2) - (5)].num);
            (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 215:

/* Line 1455 of yacc.c  */
#line 2738 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_cond(&(yyvsp[(2) - (5)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            if(thd->lex->spcont->push_cond(&(yyvsp[(2) - (5)].lex_str), (yyvsp[(5) - (5)].spcondtype)))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
            (yyval.spblock).conds= 1;
          }
    break;

  case 216:

/* Line 1455 of yacc.c  */
#line 2753 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE);

            sp_pcontext *ctx= lex->spcont;
            sp_instr_hpush_jump *i=
              new sp_instr_hpush_jump(sp->instructions(), ctx, (yyvsp[(2) - (4)].num),
                                      ctx->current_var_count());
            if (i == NULL || sp->add_instr(i))
              MYSQL_YYABORT;

            /* For continue handlers, mark end of handler scope. */
            if ((yyvsp[(2) - (4)].num) == SP_HANDLER_CONTINUE &&
                sp->push_backpatch(i, ctx->last_label()))
              MYSQL_YYABORT;

            if (sp->push_backpatch(i, ctx->push_label(empty_c_string, 0)))
              MYSQL_YYABORT;
          }
    break;

  case 217:

/* Line 1455 of yacc.c  */
#line 2775 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
            sp_instr_hreturn *i;

            if ((yyvsp[(2) - (7)].num) == SP_HANDLER_CONTINUE)
            {
              i= new sp_instr_hreturn(sp->instructions(), ctx,
                                      ctx->current_var_count());
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            else
            {  /* EXIT or UNDO handler, just jump to the end of the block */
              i= new sp_instr_hreturn(sp->instructions(), ctx, 0);
              if (i == NULL ||
                  sp->add_instr(i) ||
                  sp->push_backpatch(i, lex->spcont->last_label())) /* Block end */
                MYSQL_YYABORT;
            }
            lex->sphead->backpatch(hlab);

            lex->spcont= ctx->pop_context();

            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0;
            (yyval.spblock).hndlrs= (yyvsp[(6) - (7)].num);
            lex->spcont->add_handlers((yyvsp[(6) - (7)].num));
          }
    break;

  case 218:

/* Line 1455 of yacc.c  */
#line 2807 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint offp;
            sp_instr_cpush *i;

            if (ctx->find_cursor(&(yyvsp[(2) - (5)].lex_str), &offp, TRUE))
            {
              my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
              delete (yyvsp[(5) - (5)].lex);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[(5) - (5)].lex),
                                  ctx->current_cursor_count());
            if (i == NULL ||
                sp->add_instr(i) ||
                ctx->push_cursor(&(yyvsp[(2) - (5)].lex_str)))
              MYSQL_YYABORT;
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0;
            (yyval.spblock).curs= 1;
          }
    break;

  case 219:

/* Line 1455 of yacc.c  */
#line 2832 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sphead->reset_lex(thd);
          }
    break;

  case 220:

/* Line 1455 of yacc.c  */
#line 2836 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            DBUG_ASSERT(lex->sql_command == SQLCOM_SELECT);

            if (lex->result)
            {
              my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
                         MYF(0));
              MYSQL_YYABORT;
            }
            lex->sp_lex_in_use= TRUE;
            (yyval.lex)= lex;
            if (lex->sphead->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 221:

/* Line 1455 of yacc.c  */
#line 2855 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_EXIT; }
    break;

  case 222:

/* Line 1455 of yacc.c  */
#line 2856 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_CONTINUE; }
    break;

  case 223:

/* Line 1455 of yacc.c  */
#line 2862 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 224:

/* Line 1455 of yacc.c  */
#line 2864 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)+= 1; }
    break;

  case 225:

/* Line 1455 of yacc.c  */
#line 2869 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont->parent_context();

            if (ctx->find_handler((yyvsp[(1) - (1)].spcondtype)))
            {
              my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_hpush_jump *i=
                (sp_instr_hpush_jump *)sp->last_instruction();

              i->add_condition((yyvsp[(1) - (1)].spcondtype));
              ctx->push_handler((yyvsp[(1) - (1)].spcondtype));
            }
          }
    break;

  case 226:

/* Line 1455 of yacc.c  */
#line 2892 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* mysql errno */
            if ((yyvsp[(1) - (1)].ulong_num) == 0)
            {
              my_error(ER_WRONG_VALUE, MYF(0), "CONDITION", "0");
              MYSQL_YYABORT;
            }
            (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::number;
            (yyval.spcondtype)->mysqlerr= (yyvsp[(1) - (1)].ulong_num);
          }
    break;

  case 228:

/* Line 1455 of yacc.c  */
#line 2909 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* SQLSTATE */
            if (!sp_cond_check(&(yyvsp[(3) - (3)].lex_str)))
            {
              my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::state;
            memcpy((yyval.spcondtype)->sqlstate, (yyvsp[(3) - (3)].lex_str).str, SQLSTATE_LENGTH);
            (yyval.spcondtype)->sqlstate[SQLSTATE_LENGTH]= '\0';
          }
    break;

  case 229:

/* Line 1455 of yacc.c  */
#line 2925 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 230:

/* Line 1455 of yacc.c  */
#line 2926 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 231:

/* Line 1455 of yacc.c  */
#line 2931 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype);
          }
    break;

  case 232:

/* Line 1455 of yacc.c  */
#line 2935 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[(1) - (1)].lex_str));
            if ((yyval.spcondtype) == NULL)
            {
              my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 233:

/* Line 1455 of yacc.c  */
#line 2944 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::warning;
          }
    break;

  case 234:

/* Line 1455 of yacc.c  */
#line 2951 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::notfound;
          }
    break;

  case 235:

/* Line 1455 of yacc.c  */
#line 2958 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
            if ((yyval.spcondtype) == NULL)
              MYSQL_YYABORT;
            (yyval.spcondtype)->type= sp_cond_type_t::exception;
          }
    break;

  case 236:

/* Line 1455 of yacc.c  */
#line 2968 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Yacc_state *state= & thd->m_parser_state->m_yacc;

            lex->sql_command= SQLCOM_SIGNAL;
            lex->m_stmt= new (thd->mem_root) Signal_statement(lex, (yyvsp[(2) - (3)].spcondtype),
                                                      state->m_set_signal_info);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 237:

/* Line 1455 of yacc.c  */
#line 2982 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_cond_type_t *cond;
            if (lex->spcont == NULL)
            {
              /* SIGNAL foo cannot be used outside of stored programs */
              my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            cond= lex->spcont->find_cond(&(yyvsp[(1) - (1)].lex_str));
            if (cond == NULL)
            {
              my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (cond->type != sp_cond_type_t::state)
            {
              my_error(ER_SIGNAL_BAD_CONDITION_TYPE, MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.spcondtype)= cond;
          }
    break;

  case 238:

/* Line 1455 of yacc.c  */
#line 3005 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype); }
    break;

  case 239:

/* Line 1455 of yacc.c  */
#line 3010 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.spcondtype)= NULL; }
    break;

  case 240:

/* Line 1455 of yacc.c  */
#line 3012 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype); }
    break;

  case 241:

/* Line 1455 of yacc.c  */
#line 3017 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            thd->m_parser_state->m_yacc.m_set_signal_info.clear();
          }
    break;

  case 243:

/* Line 1455 of yacc.c  */
#line 3025 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Set_signal_information *info;
            info= &thd->m_parser_state->m_yacc.m_set_signal_info;
            int index= (int) (yyvsp[(1) - (3)].diag_condition_item_name);
            info->clear();
            info->m_item[index]= (yyvsp[(3) - (3)].item);
          }
    break;

  case 244:

/* Line 1455 of yacc.c  */
#line 3034 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Set_signal_information *info;
            info= &thd->m_parser_state->m_yacc.m_set_signal_info;
            int index= (int) (yyvsp[(3) - (5)].diag_condition_item_name);
            if (info->m_item[index] != NULL)
            {
              my_error(ER_DUP_SIGNAL_SET, MYF(0),
                       Diag_condition_item_names[index].str);
              MYSQL_YYABORT;
            }
            info->m_item[index]= (yyvsp[(5) - (5)].item);
          }
    break;

  case 245:

/* Line 1455 of yacc.c  */
#line 3053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 246:

/* Line 1455 of yacc.c  */
#line 3055 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if ((yyvsp[(1) - (1)].item)->type() == Item::FUNC_ITEM)
            {
              Item_func *item= (Item_func*) (yyvsp[(1) - (1)].item);
              if (item->functype() == Item_func::SUSERVAR_FUNC)
              {
                /*
                  Don't allow the following syntax:
                    SIGNAL/RESIGNAL ...
                    SET <signal condition item name> = @foo := expr
                */
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
            }
            (yyval.item)= (yyvsp[(1) - (1)].item);
          }
    break;

  case 247:

/* Line 1455 of yacc.c  */
#line 3073 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 248:

/* Line 1455 of yacc.c  */
#line 3079 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; }
    break;

  case 249:

/* Line 1455 of yacc.c  */
#line 3081 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; }
    break;

  case 250:

/* Line 1455 of yacc.c  */
#line 3083 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; }
    break;

  case 251:

/* Line 1455 of yacc.c  */
#line 3085 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; }
    break;

  case 252:

/* Line 1455 of yacc.c  */
#line 3087 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; }
    break;

  case 253:

/* Line 1455 of yacc.c  */
#line 3089 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; }
    break;

  case 254:

/* Line 1455 of yacc.c  */
#line 3091 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; }
    break;

  case 255:

/* Line 1455 of yacc.c  */
#line 3093 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; }
    break;

  case 256:

/* Line 1455 of yacc.c  */
#line 3095 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; }
    break;

  case 257:

/* Line 1455 of yacc.c  */
#line 3097 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; }
    break;

  case 258:

/* Line 1455 of yacc.c  */
#line 3099 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; }
    break;

  case 259:

/* Line 1455 of yacc.c  */
#line 3101 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; }
    break;

  case 260:

/* Line 1455 of yacc.c  */
#line 3106 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Yacc_state *state= & thd->m_parser_state->m_yacc;

            lex->sql_command= SQLCOM_RESIGNAL;
            lex->m_stmt= new (thd->mem_root) Resignal_statement(lex, (yyvsp[(2) - (3)].spcondtype),
                                                      state->m_set_signal_info);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 261:

/* Line 1455 of yacc.c  */
#line 3120 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (1)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(1) - (1)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= 1;
          }
    break;

  case 262:

/* Line 1455 of yacc.c  */
#line 3135 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(3) - (3)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= (yyvsp[(1) - (3)].num) + 1;
          }
    break;

  case 263:

/* Line 1455 of yacc.c  */
#line 3152 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = NULL; }
    break;

  case 264:

/* Line 1455 of yacc.c  */
#line 3153 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 278:

/* Line 1455 of yacc.c  */
#line 3174 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sphead->new_cont_backpatch(NULL); }
    break;

  case 279:

/* Line 1455 of yacc.c  */
#line 3176 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sphead->do_cont_backpatch(); }
    break;

  case 280:

/* Line 1455 of yacc.c  */
#line 3180 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            lex->sphead->reset_lex(thd);
            lex->sphead->m_tmp_query= lip->get_tok_start();
          }
    break;

  case 281:

/* Line 1455 of yacc.c  */
#line 3188 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp= lex->sphead;

            sp->m_flags|= sp_get_flags_for_command(lex);
            if (lex->sql_command == SQLCOM_CHANGE_DB)
            { /* "USE db" doesn't work in a procedure */
              my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
              MYSQL_YYABORT;
            }
            /*
              Don't add an instruction for SET statements, since all
              instructions for them were already added during processing
              of "set" rule.
            */
            DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION ||
                        lex->var_list.is_empty());
            if (lex->sql_command != SQLCOM_SET_OPTION)
            {
              sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(),
                                                 lex->spcont, lex);
              if (i == NULL)
                MYSQL_YYABORT;

              /*
                Extract the query statement from the tokenizer.  The
                end is either lex->ptr, if there was no lookahead,
                lex->tok_end otherwise.
              */
              if (yychar == YYEMPTY)
                i->m_query.length= lip->get_ptr() - sp->m_tmp_query;
              else
                i->m_query.length= lip->get_tok_end() - sp->m_tmp_query;
              if (!(i->m_query.str= strmake_root(thd->mem_root,
                                                 sp->m_tmp_query,
                                                 i->m_query.length)) ||
                    sp->add_instr(i))
                MYSQL_YYABORT;
            }
            if (sp->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 282:

/* Line 1455 of yacc.c  */
#line 3235 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sphead->reset_lex(thd); }
    break;

  case 283:

/* Line 1455 of yacc.c  */
#line 3237 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            if (sp->m_type != TYPE_ENUM_FUNCTION)
            {
              my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_freturn *i;

              i= new sp_instr_freturn(sp->instructions(), lex->spcont, (yyvsp[(3) - (3)].item),
                                      sp->m_return_field_def.sql_type, lex);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
              sp->m_flags|= sp_head::HAS_RETURN;
            }
            if (sp->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 284:

/* Line 1455 of yacc.c  */
#line 3263 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* Unlabeled controls get a secret label. */
            LEX *lex= Lex;

            lex->spcont->push_label((char *)"", lex->sphead->instructions());
          }
    break;

  case 285:

/* Line 1455 of yacc.c  */
#line 3269 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 286:

/* Line 1455 of yacc.c  */
#line 3278 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp = lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;
              /*
                When jumping to a BEGIN-END block end, the target jump
                points to the block hpop/cpop cleanup instructions,
                so we should exclude the block context here.
                When jumping to something else (i.e., SP_LAB_ITER),
                there are no hpop/cpop at the jump destination,
                so we should include the block context here for cleanup.
              */
              bool exclusive= (lab->type == SP_LAB_BEGIN);

              n= ctx->diff_handlers(lab->ctx, exclusive);
              if (n)
              {
                sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n);
                if (hpop == NULL)
                  MYSQL_YYABORT;
                sp->add_instr(hpop);
              }
              n= ctx->diff_cursors(lab->ctx, exclusive);
              if (n)
              {
                sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n);
                if (cpop == NULL)
                  MYSQL_YYABORT;
                sp->add_instr(cpop);
              }
              i= new sp_instr_jump(ip, ctx);
              if (i == NULL)
                MYSQL_YYABORT;
              sp->push_backpatch(i, lab);  /* Jumping forward */
              sp->add_instr(i);
            }
          }
    break;

  case 287:

/* Line 1455 of yacc.c  */
#line 3331 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab || lab->type != SP_LAB_ITER)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;

              n= ctx->diff_handlers(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
              {
                sp_instr_hpop *hpop= new sp_instr_hpop(ip++, ctx, n);
                if (hpop == NULL ||
                    sp->add_instr(hpop))
                  MYSQL_YYABORT;
              }
              n= ctx->diff_cursors(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
              {
                sp_instr_cpop *cpop= new sp_instr_cpop(ip++, ctx, n);
                if (cpop == NULL ||
                    sp->add_instr(cpop))
                  MYSQL_YYABORT;
              }
              i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
          }
    break;

  case 288:

/* Line 1455 of yacc.c  */
#line 3374 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_copen *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 289:

/* Line 1455 of yacc.c  */
#line 3394 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cfetch *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(3) - (4)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 290:

/* Line 1455 of yacc.c  */
#line 3411 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 291:

/* Line 1455 of yacc.c  */
#line 3416 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cclose *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cclose(sp->instructions(), lex->spcont,  offset);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 295:

/* Line 1455 of yacc.c  */
#line 3442 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 296:

/* Line 1455 of yacc.c  */
#line 3462 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(3) - (3)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 297:

/* Line 1455 of yacc.c  */
#line 3484 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sphead->reset_lex(thd); }
    break;

  case 298:

/* Line 1455 of yacc.c  */
#line 3486 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
                                                               (yyvsp[(2) - (3)].item), lex);
            if (i == NULL ||
                sp->push_backpatch(i, ctx->push_label((char *)"", 0)) ||
                sp->add_cont_backpatch(i) ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            if (sp->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 299:

/* Line 1455 of yacc.c  */
#line 3502 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            sp_head *sp= Lex->sphead;
            sp_pcontext *ctx= Lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump *i = new sp_instr_jump(ip, ctx);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            sp->backpatch(ctx->pop_label());
            sp->push_backpatch(i, ctx->push_label((char *)"", 0));
          }
    break;

  case 300:

/* Line 1455 of yacc.c  */
#line 3514 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 306:

/* Line 1455 of yacc.c  */
#line 3534 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
            lex->sphead->reset_lex(thd); /* For expr $3 */
          }
    break;

  case 307:

/* Line 1455 of yacc.c  */
#line 3540 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_expr(lex, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;

            /* For expr $3 */
            if (lex->sphead->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 308:

/* Line 1455 of yacc.c  */
#line 3553 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, true);
          }
    break;

  case 309:

/* Line 1455 of yacc.c  */
#line 3561 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
          }
    break;

  case 310:

/* Line 1455 of yacc.c  */
#line 3569 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, false);
          }
    break;

  case 315:

/* Line 1455 of yacc.c  */
#line 3587 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sphead->reset_lex(thd); /* For expr $3 */
          }
    break;

  case 316:

/* Line 1455 of yacc.c  */
#line 3591 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* Simple case: <caseval> = <whenval> */

            LEX *lex= Lex;
            if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), true))
              MYSQL_YYABORT;
            /* For expr $3 */
            if (lex->sphead->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 317:

/* Line 1455 of yacc.c  */
#line 3603 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_then(lex))
              MYSQL_YYABORT;
          }
    break;

  case 318:

/* Line 1455 of yacc.c  */
#line 3612 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sphead->reset_lex(thd); /* For expr $3 */
          }
    break;

  case 319:

/* Line 1455 of yacc.c  */
#line 3616 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), false))
              MYSQL_YYABORT;
            /* For expr $3 */
            if (lex->sphead->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 320:

/* Line 1455 of yacc.c  */
#line 3626 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_then(lex))
              MYSQL_YYABORT;
          }
    break;

  case 321:

/* Line 1455 of yacc.c  */
#line 3635 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_error *i= new sp_instr_error(ip, lex->spcont,
                                                  ER_SP_CASE_NOT_FOUND);
            if (i == NULL ||
                sp->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 323:

/* Line 1455 of yacc.c  */
#line 3650 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                           lex->sphead->instructions());
              lab->type= SP_LAB_ITER;
            }
          }
    break;

  case 324:

/* Line 1455 of yacc.c  */
#line 3668 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->pop_label();

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              if (my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
            lex->sphead->backpatch(lab);
          }
    break;

  case 325:

/* Line 1455 of yacc.c  */
#line 3685 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 326:

/* Line 1455 of yacc.c  */
#line 3686 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 327:

/* Line 1455 of yacc.c  */
#line 3691 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }

            lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                         lex->sphead->instructions());
            lab->type= SP_LAB_BEGIN;
          }
    break;

  case 328:

/* Line 1455 of yacc.c  */
#line 3707 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->pop_label();

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              if (my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
          }
    break;

  case 329:

/* Line 1455 of yacc.c  */
#line 3723 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* Unlabeled blocks get a secret label. */
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->push_label((char *)"", ip);
            lab->type= SP_LAB_BEGIN;
          }
    break;

  case 330:

/* Line 1455 of yacc.c  */
#line 3730 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->spcont->pop_label();
          }
    break;

  case 331:

/* Line 1455 of yacc.c  */
#line 3738 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* QQ This is just a dummy for grouping declarations and statements
              together. No [[NOT] ATOMIC] yet, and we need to figure out how
              make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
            LEX *lex= Lex;
            lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
          }
    break;

  case 332:

/* Line 1455 of yacc.c  */
#line 3747 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_instr *i;

            sp->backpatch(ctx->last_label()); /* We always have a label */
            if ((yyvsp[(3) - (5)].spblock).hndlrs)
            {
              i= new sp_instr_hpop(sp->instructions(), ctx, (yyvsp[(3) - (5)].spblock).hndlrs);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            if ((yyvsp[(3) - (5)].spblock).curs)
            {
              i= new sp_instr_cpop(sp->instructions(), ctx, (yyvsp[(3) - (5)].spblock).curs);
              if (i == NULL ||
                  sp->add_instr(i))
                MYSQL_YYABORT;
            }
            lex->spcont= ctx->pop_context();
          }
    break;

  case 333:

/* Line 1455 of yacc.c  */
#line 3775 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
          }
    break;

  case 334:

/* Line 1455 of yacc.c  */
#line 3785 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sphead->reset_lex(thd); }
    break;

  case 335:

/* Line 1455 of yacc.c  */
#line 3787 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(3) - (4)].item), lex);
            if (i == NULL ||
                /* Jumping forward */
                sp->push_backpatch(i, lex->spcont->last_label()) ||
                sp->new_cont_backpatch(i) ||
                sp->add_instr(i))
              MYSQL_YYABORT;
            if (sp->restore_lex(thd))
              MYSQL_YYABORT;
          }
    break;

  case 336:

/* Line 1455 of yacc.c  */
#line 3803 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
            lex->sphead->do_cont_backpatch();
          }
    break;

  case 337:

/* Line 1455 of yacc.c  */
#line 3814 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sphead->reset_lex(thd); }
    break;

  case 338:

/* Line 1455 of yacc.c  */
#line 3816 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(5) - (7)].item), lab->ip,
                                                               lex);
            if (i == NULL ||
                lex->sphead->add_instr(i))
              MYSQL_YYABORT;
            if (lex->sphead->restore_lex(thd))
              MYSQL_YYABORT;
            /* We can shortcut the cont_backpatch here */
            i->m_cont_dest= ip+1;
          }
    break;

  case 339:

/* Line 1455 of yacc.c  */
#line 3835 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
    break;

  case 340:

/* Line 1455 of yacc.c  */
#line 3837 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
    break;

  case 341:

/* Line 1455 of yacc.c  */
#line 3842 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_INSERT; }
    break;

  case 342:

/* Line 1455 of yacc.c  */
#line 3844 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
    break;

  case 343:

/* Line 1455 of yacc.c  */
#line 3846 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_DELETE; }
    break;

  case 347:

/* Line 1455 of yacc.c  */
#line 3880 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 348:

/* Line 1455 of yacc.c  */
#line 3882 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(4) - (4)].lex_str).str;
          }
    break;

  case 349:

/* Line 1455 of yacc.c  */
#line 3892 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; 
          }
    break;

  case 350:

/* Line 1455 of yacc.c  */
#line 3898 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; 
          }
    break;

  case 355:

/* Line 1455 of yacc.c  */
#line 3921 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 402:

/* Line 1455 of yacc.c  */
#line 4015 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->data_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 403:

/* Line 1455 of yacc.c  */
#line 4023 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 404:

/* Line 1455 of yacc.c  */
#line 4031 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 405:

/* Line 1455 of yacc.c  */
#line 4039 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            if (lex->alter_tablespace_info == NULL)
              MYSQL_YYABORT;
            lex->alter_tablespace_info->tablespace_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 406:

/* Line 1455 of yacc.c  */
#line 4051 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            if (lex->alter_tablespace_info == NULL)
              MYSQL_YYABORT;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 407:

/* Line 1455 of yacc.c  */
#line 4063 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
          }
    break;

  case 408:

/* Line 1455 of yacc.c  */
#line 4068 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
          }
    break;

  case 409:

/* Line 1455 of yacc.c  */
#line 4073 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
          }
    break;

  case 410:

/* Line 1455 of yacc.c  */
#line 4081 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->initial_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 411:

/* Line 1455 of yacc.c  */
#line 4089 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->autoextend_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 412:

/* Line 1455 of yacc.c  */
#line 4097 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->max_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 413:

/* Line 1455 of yacc.c  */
#line 4105 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->extent_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 414:

/* Line 1455 of yacc.c  */
#line 4113 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 415:

/* Line 1455 of yacc.c  */
#line 4121 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 416:

/* Line 1455 of yacc.c  */
#line 4129 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->nodegroup_id= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 417:

/* Line 1455 of yacc.c  */
#line 4142 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->ts_comment != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->ts_comment= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 418:

/* Line 1455 of yacc.c  */
#line 4155 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->storage_engine != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),
                       "STORAGE ENGINE");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->storage_engine= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 421:

/* Line 1455 of yacc.c  */
#line 4174 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->wait_until_completed= TRUE;
          }
    break;

  case 422:

/* Line 1455 of yacc.c  */
#line 4179 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!(lex->alter_tablespace_info->wait_until_completed))
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->wait_until_completed= FALSE;
          }
    break;

  case 423:

/* Line 1455 of yacc.c  */
#line 4191 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulonglong_number)= (yyvsp[(1) - (1)].ulonglong_number);}
    break;

  case 424:

/* Line 1455 of yacc.c  */
#line 4193 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            ulonglong number;
            uint text_shift_number= 0;
            longlong prefix_number;
            char *start_ptr= (yyvsp[(1) - (1)].lex_str).str;
            uint str_len= (yyvsp[(1) - (1)].lex_str).length;
            char *end_ptr= start_ptr + str_len;
            int error;
            prefix_number= my_strtoll10(start_ptr, &end_ptr, &error);
            if ((start_ptr + str_len - 1) == end_ptr)
            {
              switch (end_ptr[0])
              {
                case 'g':
                case 'G':
                  text_shift_number+=10;
                case 'm':
                case 'M':
                  text_shift_number+=10;
                case 'k':
                case 'K':
                  text_shift_number+=10;
                  break;
                default:
                {
                  my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
                  MYSQL_YYABORT;
                }
              }
              if (prefix_number >> 31)
              {
                my_error(ER_SIZE_OVERFLOW_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              number= prefix_number << text_shift_number;
            }
            else
            {
              my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.ulonglong_number)= number;
          }
    break;

  case 425:

/* Line 1455 of yacc.c  */
#line 4243 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 426:

/* Line 1455 of yacc.c  */
#line 4246 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 427:

/* Line 1455 of yacc.c  */
#line 4248 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            TABLE_LIST *src_table;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[(2) - (2)].table), NULL, 0,
                                                         TL_READ,
                                                         MDL_SHARED_READ);
            if (! src_table)
              MYSQL_YYABORT;
            /* CREATE TABLE ... LIKE is not allowed for views. */
            src_table->required_type= FRMTYPE_TABLE;
          }
    break;

  case 428:

/* Line 1455 of yacc.c  */
#line 4262 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            TABLE_LIST *src_table;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            src_table= lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (4)].table), NULL, 0,
                                                         TL_READ,
                                                         MDL_SHARED_READ);
            if (! src_table)
              MYSQL_YYABORT;
            /* CREATE TABLE ... LIKE is not allowed for views. */
            src_table->required_type= FRMTYPE_TABLE;
          }
    break;

  case 429:

/* Line 1455 of yacc.c  */
#line 4279 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.option_list= NULL;
          }
    break;

  case 430:

/* Line 1455 of yacc.c  */
#line 4284 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 431:

/* Line 1455 of yacc.c  */
#line 4287 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 432:

/* Line 1455 of yacc.c  */
#line 4288 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 433:

/* Line 1455 of yacc.c  */
#line 4292 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 434:

/* Line 1455 of yacc.c  */
#line 4294 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 435:

/* Line 1455 of yacc.c  */
#line 4295 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 436:

/* Line 1455 of yacc.c  */
#line 4297 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 437:

/* Line 1455 of yacc.c  */
#line 4298 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 438:

/* Line 1455 of yacc.c  */
#line 4303 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Remove all tables used in PARTITION clause from the global table
              list. Partitioning with subqueries is not allowed anyway.
            */
            TABLE_LIST *last_non_sel_table= Lex->create_last_non_select_table;
            last_non_sel_table->next_global= 0;
            Lex->query_tables_last= &last_non_sel_table->next_global;
          }
    break;

  case 439:

/* Line 1455 of yacc.c  */
#line 4339 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 441:

/* Line 1455 of yacc.c  */
#line 4345 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            if (lex->sql_command == SQLCOM_ALTER_TABLE)
            {
              lex->alter_info.flags|= ALTER_PARTITION;
            }
          }
    break;

  case 443:

/* Line 1455 of yacc.c  */
#line 4363 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
#ifdef WITH_PARTITION_STORAGE_ENGINE
            LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
            if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
            {
              my_error(ER_OPTION_PREVENTS_STATEMENT, MYF(0),
                      "--skip-partition");
              MYSQL_YYABORT;
            }
#else
            my_error(ER_FEATURE_DISABLED, MYF(0), "partitioning",
                    "--with-plugin-partition");
            MYSQL_YYABORT;
#endif
          }
    break;

  case 444:

/* Line 1455 of yacc.c  */
#line 4382 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!lex->part_info)
            {
              my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
              MYSQL_YYABORT;
            }
            /*
              We enter here when opening the frm file to translate
              partition info string into part_info data structure.
            */
          }
    break;

  case 445:

/* Line 1455 of yacc.c  */
#line 4394 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 447:

/* Line 1455 of yacc.c  */
#line 4403 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->list_of_part_fields= TRUE;
            part_info->column_list= FALSE;
            part_info->part_type= HASH_PARTITION;
          }
    break;

  case 448:

/* Line 1455 of yacc.c  */
#line 4410 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->part_type= HASH_PARTITION; }
    break;

  case 449:

/* Line 1455 of yacc.c  */
#line 4411 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 450:

/* Line 1455 of yacc.c  */
#line 4413 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->part_type= RANGE_PARTITION; }
    break;

  case 451:

/* Line 1455 of yacc.c  */
#line 4415 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->part_type= RANGE_PARTITION; }
    break;

  case 452:

/* Line 1455 of yacc.c  */
#line 4417 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->part_type= LIST_PARTITION; }
    break;

  case 453:

/* Line 1455 of yacc.c  */
#line 4419 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->part_type= LIST_PARTITION; }
    break;

  case 454:

/* Line 1455 of yacc.c  */
#line 4423 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 455:

/* Line 1455 of yacc.c  */
#line 4425 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->linear_hash_ind= TRUE;}
    break;

  case 456:

/* Line 1455 of yacc.c  */
#line 4430 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;}
    break;

  case 457:

/* Line 1455 of yacc.c  */
#line 4432 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            switch ((yyvsp[(3) - (3)].ulong_num)) {
            case 1:
              Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_51;
              break;
            case 2:
              Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_55;
              break;
            default:
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 458:

/* Line 1455 of yacc.c  */
#line 4448 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 459:

/* Line 1455 of yacc.c  */
#line 4449 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 460:

/* Line 1455 of yacc.c  */
#line 4453 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 461:

/* Line 1455 of yacc.c  */
#line 4454 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 462:

/* Line 1455 of yacc.c  */
#line 4459 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->num_columns++;
            if (part_info->part_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
            if (part_info->num_columns > MAX_REF_PARTS)
            {
              my_error(ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0),
                       "list of partition fields");
              MYSQL_YYABORT;
            }
          }
    break;

  case 463:

/* Line 1455 of yacc.c  */
#line 4478 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->column_list= TRUE;
            part_info->list_of_part_fields= TRUE;
          }
    break;

  case 464:

/* Line 1455 of yacc.c  */
#line 4488 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->set_part_expr((yyvsp[(2) - (5)].simple_string)+1, (yyvsp[(3) - (5)].item), (yyvsp[(4) - (5)].simple_string), FALSE))
            { MYSQL_YYABORT; }
            part_info->num_columns= 1;
            part_info->column_list= FALSE;
          }
    break;

  case 465:

/* Line 1455 of yacc.c  */
#line 4499 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->part_info->set_part_expr((yyvsp[(2) - (5)].simple_string)+1, (yyvsp[(3) - (5)].item), (yyvsp[(4) - (5)].simple_string), TRUE))
            { MYSQL_YYABORT; }
          }
    break;

  case 466:

/* Line 1455 of yacc.c  */
#line 4507 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 467:

/* Line 1455 of yacc.c  */
#line 4509 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            uint num_parts= (yyvsp[(2) - (2)].ulong_num);
            partition_info *part_info= Lex->part_info;
            if (num_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
              MYSQL_YYABORT;
            }

            part_info->num_parts= num_parts;
            part_info->use_default_num_partitions= FALSE;
          }
    break;

  case 468:

/* Line 1455 of yacc.c  */
#line 4524 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 469:

/* Line 1455 of yacc.c  */
#line 4526 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->subpart_type= HASH_PARTITION; }
    break;

  case 470:

/* Line 1455 of yacc.c  */
#line 4527 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 471:

/* Line 1455 of yacc.c  */
#line 4530 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->subpart_type= HASH_PARTITION;
            part_info->list_of_subpart_fields= TRUE;
          }
    break;

  case 472:

/* Line 1455 of yacc.c  */
#line 4535 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 473:

/* Line 1455 of yacc.c  */
#line 4539 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 474:

/* Line 1455 of yacc.c  */
#line 4540 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 475:

/* Line 1455 of yacc.c  */
#line 4545 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->subpart_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
            if (part_info->subpart_field_list.elements > MAX_REF_PARTS)
            {
              my_error(ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR, MYF(0),
                       "list of subpartition fields");
              MYSQL_YYABORT;
            }
          }
    break;

  case 476:

/* Line 1455 of yacc.c  */
#line 4563 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            bool not_corr_func;
            not_corr_func= !lex->safe_to_cache_query;
            lex->safe_to_cache_query= 1;
            if (not_corr_func)
            {
              my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.item)=(yyvsp[(1) - (1)].item);
          }
    break;

  case 477:

/* Line 1455 of yacc.c  */
#line 4578 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 478:

/* Line 1455 of yacc.c  */
#line 4580 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            uint num_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (num_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
              MYSQL_YYABORT;
            }
            lex->part_info->num_subparts= num_parts;
            lex->part_info->use_default_num_subpartitions= FALSE;
          }
    break;

  case 479:

/* Line 1455 of yacc.c  */
#line 4595 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->part_type == RANGE_PARTITION)
            {
              my_error(ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0),
                       "RANGE");
              MYSQL_YYABORT;
            }
            else if (part_info->part_type == LIST_PARTITION)
            {
              my_error(ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0),
                       "LIST");
              MYSQL_YYABORT;
            }
          }
    break;

  case 480:

/* Line 1455 of yacc.c  */
#line 4611 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            uint count_curr_parts= part_info->partitions.elements;
            if (part_info->num_parts != 0)
            {
              if (part_info->num_parts !=
                  count_curr_parts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (count_curr_parts > 0)
            {
              part_info->num_parts= count_curr_parts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 481:

/* Line 1455 of yacc.c  */
#line 4632 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 482:

/* Line 1455 of yacc.c  */
#line 4633 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 483:

/* Line 1455 of yacc.c  */
#line 4638 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            partition_element *p_elem= new partition_element();

            if (!p_elem || part_info->partitions.push_back(p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            p_elem->part_state= PART_NORMAL;
            part_info->curr_part_elem= p_elem;
            part_info->current_partition= p_elem;
            part_info->use_default_partitions= FALSE;
            part_info->use_default_num_partitions= FALSE;
          }
    break;

  case 484:

/* Line 1455 of yacc.c  */
#line 4657 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 485:

/* Line 1455 of yacc.c  */
#line 4662 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            partition_element *p_elem= part_info->curr_part_elem;
            p_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str;
          }
    break;

  case 486:

/* Line 1455 of yacc.c  */
#line 4671 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            if (! lex->is_partition_management())
            {
              if (part_info->part_type == RANGE_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
              if (part_info->part_type == LIST_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              part_info->part_type= HASH_PARTITION;
          }
    break;

  case 487:

/* Line 1455 of yacc.c  */
#line 4693 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            if (! lex->is_partition_management())
            {
              if (part_info->part_type != RANGE_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
            }
            else
              part_info->part_type= RANGE_PARTITION;
          }
    break;

  case 488:

/* Line 1455 of yacc.c  */
#line 4708 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 489:

/* Line 1455 of yacc.c  */
#line 4710 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            if (! lex->is_partition_management())
            {
              if (part_info->part_type != LIST_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                               "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              part_info->part_type= LIST_PARTITION;
          }
    break;

  case 490:

/* Line 1455 of yacc.c  */
#line 4725 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 491:

/* Line 1455 of yacc.c  */
#line 4730 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;

            if (part_info->num_columns &&
                part_info->num_columns != 1U)
            {
              part_info->print_debug("Kilroy II", NULL);
              my_parse_error(ER(ER_PARTITION_COLUMN_LIST_ERROR));
              MYSQL_YYABORT;
            }
            else
              part_info->num_columns= 1U;
            if (part_info->init_column_part())
            {
              MYSQL_YYABORT;
            }
            if (part_info->add_max_value())
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 492:

/* Line 1455 of yacc.c  */
#line 4751 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 493:

/* Line 1455 of yacc.c  */
#line 4756 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            part_info->print_debug("part_values_in: part_value_item", NULL);

            if (part_info->num_columns != 1U)
            {
              if (!lex->is_partition_management() ||
                  part_info->num_columns == 0 ||
                  part_info->num_columns > MAX_REF_PARTS)
              {
                part_info->print_debug("Kilroy III", NULL);
                my_parse_error(ER(ER_PARTITION_COLUMN_LIST_ERROR));
                MYSQL_YYABORT;
              }
              /*
                Reorganize the current large array into a list of small
                arrays with one entry in each array. This can happen
                in the first partition of an ALTER TABLE statement where
                we ADD or REORGANIZE partitions. Also can only happen
                for LIST partitions.
              */
              if (part_info->reorganize_into_single_field_col_val())
              {
                MYSQL_YYABORT;
              }
            }
          }
    break;

  case 494:

/* Line 1455 of yacc.c  */
#line 4785 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->num_columns < 2U)
            {
              my_parse_error(ER(ER_ROW_SINGLE_PARTITION_FIELD_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 495:

/* Line 1455 of yacc.c  */
#line 4796 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 496:

/* Line 1455 of yacc.c  */
#line 4797 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 497:

/* Line 1455 of yacc.c  */
#line 4802 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->print_debug("( part_value_item", NULL);
            /* Initialisation code needed for each list of value expressions */
            if (!(part_info->part_type == LIST_PARTITION &&
                  part_info->num_columns == 1U) &&
                 part_info->init_column_part())
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 498:

/* Line 1455 of yacc.c  */
#line 4813 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 499:

/* Line 1455 of yacc.c  */
#line 4815 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->print_debug(") part_value_item", NULL);
            if (part_info->num_columns == 0)
              part_info->num_columns= part_info->curr_list_object;
            if (part_info->num_columns != part_info->curr_list_object)
            {
              /*
                All value items lists must be of equal length, in some cases
                which is covered by the above if-statement we don't know yet
                how many columns is in the partition so the assignment above
                ensures that we only report errors when we know we have an
                error.
              */
              part_info->print_debug("Kilroy I", NULL);
              my_parse_error(ER(ER_PARTITION_COLUMN_LIST_ERROR));
              MYSQL_YYABORT;
            }
            part_info->curr_list_object= 0;
          }
    break;

  case 500:

/* Line 1455 of yacc.c  */
#line 4838 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 501:

/* Line 1455 of yacc.c  */
#line 4839 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 502:

/* Line 1455 of yacc.c  */
#line 4844 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->part_type == LIST_PARTITION)
            {
              my_parse_error(ER(ER_MAXVALUE_IN_VALUES_IN));
              MYSQL_YYABORT;
            }
            if (part_info->add_max_value())
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 503:

/* Line 1455 of yacc.c  */
#line 4857 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            Item *part_expr= (yyvsp[(1) - (1)].item);

            if (!lex->safe_to_cache_query)
            {
              my_parse_error(ER(ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR));
              MYSQL_YYABORT;
            }
            if (part_info->add_column_list_value(thd, part_expr))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 504:

/* Line 1455 of yacc.c  */
#line 4877 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->num_subparts != 0 &&
                !part_info->use_default_subpartitions)
            {
              /*
                We come here when we have defined subpartitions on the first
                partition but not on all the subsequent partitions. 
              */
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 505:

/* Line 1455 of yacc.c  */
#line 4891 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (part_info->num_subparts != 0)
            {
              if (part_info->num_subparts !=
                  part_info->count_curr_subparts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (part_info->count_curr_subparts > 0)
            {
              if (part_info->partitions.elements > 1)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
              part_info->num_subparts= part_info->count_curr_subparts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 506:

/* Line 1455 of yacc.c  */
#line 4916 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 507:

/* Line 1455 of yacc.c  */
#line 4917 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 508:

/* Line 1455 of yacc.c  */
#line 4922 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            partition_element *curr_part= part_info->current_partition;
            partition_element *sub_p_elem= new partition_element(curr_part);
            if (part_info->use_default_subpartitions &&
                part_info->partitions.elements >= 2)
            {
              /*
                create table t1 (a int)
                partition by list (a) subpartition by hash (a)
                (partition p0 values in (1),
                 partition p1 values in (2) subpartition sp11);
                causes use to arrive since we are on the second
                partition, but still use_default_subpartitions
                is set. When we come here we're processing at least
                the second partition (the current partition processed
                have already been put into the partitions list.
              */
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
            if (!sub_p_elem ||
             curr_part->subpartitions.push_back(sub_p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            part_info->curr_part_elem= sub_p_elem;
            part_info->use_default_subpartitions= FALSE;
            part_info->use_default_num_subpartitions= FALSE;
            part_info->count_curr_subparts++;
          }
    break;

  case 509:

/* Line 1455 of yacc.c  */
#line 4954 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 510:

/* Line 1455 of yacc.c  */
#line 4959 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 511:

/* Line 1455 of yacc.c  */
#line 4963 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 512:

/* Line 1455 of yacc.c  */
#line 4964 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 513:

/* Line 1455 of yacc.c  */
#line 4968 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 514:

/* Line 1455 of yacc.c  */
#line 4969 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 515:

/* Line 1455 of yacc.c  */
#line 4974 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 516:

/* Line 1455 of yacc.c  */
#line 4976 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->curr_part_elem->engine_type= (yyvsp[(4) - (4)].db_type);
            part_info->default_engine_type= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 517:

/* Line 1455 of yacc.c  */
#line 4982 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->curr_part_elem->connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
            lex->part_info->curr_part_elem->connect_string.length= (yyvsp[(3) - (3)].lex_str).length;
          }
    break;

  case 518:

/* Line 1455 of yacc.c  */
#line 4988 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 519:

/* Line 1455 of yacc.c  */
#line 4990 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 520:

/* Line 1455 of yacc.c  */
#line 4992 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 521:

/* Line 1455 of yacc.c  */
#line 4994 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 522:

/* Line 1455 of yacc.c  */
#line 4996 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 523:

/* Line 1455 of yacc.c  */
#line 4998 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_comment= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 524:

/* Line 1455 of yacc.c  */
#line 5007 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sql_command == SQLCOM_INSERT)
              lex->sql_command= SQLCOM_INSERT_SELECT;
            else if (lex->sql_command == SQLCOM_REPLACE)
              lex->sql_command= SQLCOM_REPLACE_SELECT;
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            lex->current_select->table_list.save_and_clear(&lex->save_list);
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 525:

/* Line 1455 of yacc.c  */
#line 5022 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 526:

/* Line 1455 of yacc.c  */
#line 5026 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            Lex->current_select->table_list.push_front(&Lex->save_list);
          }
    break;

  case 527:

/* Line 1455 of yacc.c  */
#line 5036 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 528:

/* Line 1455 of yacc.c  */
#line 5037 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 529:

/* Line 1455 of yacc.c  */
#line 5041 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 530:

/* Line 1455 of yacc.c  */
#line 5042 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 531:

/* Line 1455 of yacc.c  */
#line 5046 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 532:

/* Line 1455 of yacc.c  */
#line 5047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 533:

/* Line 1455 of yacc.c  */
#line 5051 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 534:

/* Line 1455 of yacc.c  */
#line 5052 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 535:

/* Line 1455 of yacc.c  */
#line 5056 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 536:

/* Line 1455 of yacc.c  */
#line 5057 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (1)].num);}
    break;

  case 537:

/* Line 1455 of yacc.c  */
#line 5061 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (1)].num); }
    break;

  case 538:

/* Line 1455 of yacc.c  */
#line 5062 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 539:

/* Line 1455 of yacc.c  */
#line 5066 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; }
    break;

  case 540:

/* Line 1455 of yacc.c  */
#line 5070 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 541:

/* Line 1455 of yacc.c  */
#line 5071 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; }
    break;

  case 549:

/* Line 1455 of yacc.c  */
#line 5092 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 550:

/* Line 1455 of yacc.c  */
#line 5097 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.max_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;
          }
    break;

  case 551:

/* Line 1455 of yacc.c  */
#line 5102 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.min_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;
          }
    break;

  case 552:

/* Line 1455 of yacc.c  */
#line 5107 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.avg_row_length=(yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;
          }
    break;

  case 553:

/* Line 1455 of yacc.c  */
#line 5112 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.password=(yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD;
          }
    break;

  case 554:

/* Line 1455 of yacc.c  */
#line 5117 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.comment=(yyvsp[(3) - (3)].lex_str);
            Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT;
          }
    break;

  case 555:

/* Line 1455 of yacc.c  */
#line 5122 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.auto_increment_value=(yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;
          }
    break;

  case 556:

/* Line 1455 of yacc.c  */
#line 5127 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            switch((yyvsp[(3) - (3)].ulong_num)) {
            case 0:
                Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS;
                break;
            case 1:
                Lex->create_info.table_options|= HA_OPTION_PACK_KEYS;
                break;
            default:
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
            }
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 557:

/* Line 1455 of yacc.c  */
#line 5142 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.table_options&=
              ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 558:

/* Line 1455 of yacc.c  */
#line 5148 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
            Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 559:

/* Line 1455 of yacc.c  */
#line 5153 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
             Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 560:

/* Line 1455 of yacc.c  */
#line 5158 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.used_fields|= HA_CREATE_USED_PAGE_CHECKSUM;
            Lex->create_info.page_checksum= (yyvsp[(3) - (3)].choice);
          }
    break;

  case 561:

/* Line 1455 of yacc.c  */
#line 5163 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;
            Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE;
          }
    break;

  case 562:

/* Line 1455 of yacc.c  */
#line 5168 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.row_type= (yyvsp[(3) - (3)].row_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
          }
    break;

  case 563:

/* Line 1455 of yacc.c  */
#line 5173 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->select_lex.table_list.save_and_clear(&Lex->save_list);
          }
    break;

  case 564:

/* Line 1455 of yacc.c  */
#line 5177 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Move the union list to the merge_list and exclude its tables
              from the global list.
            */
            LEX *lex=Lex;
            lex->create_info.merge_list= lex->select_lex.table_list;
            lex->select_lex.table_list= lex->save_list;
            /*
              When excluding union list from the global list we assume that
              elements of the former immediately follow elements which represent
              table being created/altered and parent tables.
            */
            TABLE_LIST *last_non_sel_table= lex->create_last_non_select_table;
            DBUG_ASSERT(last_non_sel_table->next_global ==
                        lex->create_info.merge_list.first);
            last_non_sel_table->next_global= 0;
            Lex->query_tables_last= &last_non_sel_table->next_global;

            lex->create_info.used_fields|= HA_CREATE_USED_UNION;
          }
    break;

  case 567:

/* Line 1455 of yacc.c  */
#line 5201 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.merge_insert_method= (yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;
          }
    break;

  case 568:

/* Line 1455 of yacc.c  */
#line 5206 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.data_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR;
          }
    break;

  case 569:

/* Line 1455 of yacc.c  */
#line 5211 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.index_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR;
          }
    break;

  case 570:

/* Line 1455 of yacc.c  */
#line 5216 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {Lex->create_info.tablespace= (yyvsp[(2) - (2)].lex_str).str;}
    break;

  case 571:

/* Line 1455 of yacc.c  */
#line 5218 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_DISK;}
    break;

  case 572:

/* Line 1455 of yacc.c  */
#line 5220 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {Lex->create_info.storage_media= HA_SM_MEMORY;}
    break;

  case 573:

/* Line 1455 of yacc.c  */
#line 5222 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.connect_string.length= (yyvsp[(3) - (3)].lex_str).length;
            Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION;
          }
    break;

  case 574:

/* Line 1455 of yacc.c  */
#line 5228 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
            Lex->create_info.key_block_size= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 575:

/* Line 1455 of yacc.c  */
#line 5233 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
	    Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL;
            Lex->create_info.transactional= (yyvsp[(3) - (3)].choice);
          }
    break;

  case 576:

/* Line 1455 of yacc.c  */
#line 5238 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true, &Lex->create_info.option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 577:

/* Line 1455 of yacc.c  */
#line 5244 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), false, &Lex->create_info.option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 578:

/* Line 1455 of yacc.c  */
#line 5250 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].ulonglong_number), &Lex->create_info.option_list,
                                  &Lex->option_list_last, thd->mem_root);
          }
    break;

  case 579:

/* Line 1455 of yacc.c  */
#line 5256 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), &Lex->create_info.option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 580:

/* Line 1455 of yacc.c  */
#line 5265 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
            {
              my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
                       "CHARACTER SET ", cinfo->default_table_charset->csname,
                       "CHARACTER SET ", (yyvsp[(4) - (4)].charset)->csname);
              MYSQL_YYABORT;
            }
            Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
            Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 581:

/* Line 1455 of yacc.c  */
#line 5283 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !((yyvsp[(4) - (4)].charset)= merge_charset_and_collation(cinfo->default_table_charset,
                                                   (yyvsp[(4) - (4)].charset))))
            {
              MYSQL_YYABORT;
            }

            Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
            Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 582:

/* Line 1455 of yacc.c  */
#line 5300 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            plugin_ref plugin= ha_resolve_by_name(thd, &(yyvsp[(1) - (1)].lex_str));

            if (plugin)
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              if (thd->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
              {
                my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyval.db_type)= 0;
              push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_UNKNOWN_STORAGE_ENGINE,
                                  ER(ER_UNKNOWN_STORAGE_ENGINE),
                                  (yyvsp[(1) - (1)].lex_str).str);
            }
          }
    break;

  case 583:

/* Line 1455 of yacc.c  */
#line 5323 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            plugin_ref plugin;
            if ((plugin= ha_resolve_by_name(thd, &(yyvsp[(1) - (1)].lex_str))))
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 584:

/* Line 1455 of yacc.c  */
#line 5336 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DEFAULT; }
    break;

  case 585:

/* Line 1455 of yacc.c  */
#line 5337 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_FIXED; }
    break;

  case 586:

/* Line 1455 of yacc.c  */
#line 5338 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DYNAMIC; }
    break;

  case 587:

/* Line 1455 of yacc.c  */
#line 5339 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPRESSED; }
    break;

  case 588:

/* Line 1455 of yacc.c  */
#line 5340 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_REDUNDANT; }
    break;

  case 589:

/* Line 1455 of yacc.c  */
#line 5341 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPACT; }
    break;

  case 590:

/* Line 1455 of yacc.c  */
#line 5342 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_PAGE; }
    break;

  case 591:

/* Line 1455 of yacc.c  */
#line 5346 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_DISABLED; }
    break;

  case 592:

/* Line 1455 of yacc.c  */
#line 5347 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; }
    break;

  case 593:

/* Line 1455 of yacc.c  */
#line 5348 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; }
    break;

  case 594:

/* Line 1455 of yacc.c  */
#line 5352 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 596:

/* Line 1455 of yacc.c  */
#line 5357 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.num) = (int) STRING_RESULT; }
    break;

  case 597:

/* Line 1455 of yacc.c  */
#line 5358 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.num) = (int) REAL_RESULT; }
    break;

  case 598:

/* Line 1455 of yacc.c  */
#line 5359 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.num) = (int) DECIMAL_RESULT; }
    break;

  case 599:

/* Line 1455 of yacc.c  */
#line 5360 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.num) = (int) INT_RESULT; }
    break;

  case 600:

/* Line 1455 of yacc.c  */
#line 5366 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          Lex->create_last_non_select_table= Lex->last_table();
        }
    break;

  case 606:

/* Line 1455 of yacc.c  */
#line 5384 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 607:

/* Line 1455 of yacc.c  */
#line 5391 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->option_list= NULL; }
    break;

  case 608:

/* Line 1455 of yacc.c  */
#line 5393 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (8)].key_type), (yyvsp[(2) - (8)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 609:

/* Line 1455 of yacc.c  */
#line 5399 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->option_list= NULL; }
    break;

  case 610:

/* Line 1455 of yacc.c  */
#line 5401 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (9)].key_type), (yyvsp[(3) - (9)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 611:

/* Line 1455 of yacc.c  */
#line 5407 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->option_list= NULL; }
    break;

  case 612:

/* Line 1455 of yacc.c  */
#line 5409 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(1) - (9)].key_type), (yyvsp[(3) - (9)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 613:

/* Line 1455 of yacc.c  */
#line 5415 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->option_list= NULL; }
    break;

  case 614:

/* Line 1455 of yacc.c  */
#line 5417 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_create_index (Lex, (yyvsp[(2) - (9)].key_type), (yyvsp[(3) - (9)].lex_str).str ? (yyvsp[(3) - (9)].lex_str) : (yyvsp[(1) - (9)].lex_str)))
              MYSQL_YYABORT;
          }
    break;

  case 615:

/* Line 1455 of yacc.c  */
#line 5422 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Key *key= new Foreign_key((yyvsp[(4) - (8)].lex_str).str ? (yyvsp[(4) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str), lex->col_list,
                                      (yyvsp[(8) - (8)].table),
                                      lex->ref_list,
                                      lex->fk_delete_opt,
                                      lex->fk_update_opt,
                                      lex->fk_match_option);
            if (key == NULL)
              MYSQL_YYABORT;
            lex->alter_info.key_list.push_back(key);
            lex->option_list= NULL;
            if (add_create_index (lex, Key::MULTIPLE, (yyvsp[(1) - (8)].lex_str).str ? (yyvsp[(1) - (8)].lex_str) : (yyvsp[(4) - (8)].lex_str),
                                  &default_key_create_info, 1))
              MYSQL_YYABORT;
            /* Only used for ALTER TABLE. Ignored otherwise. */
            lex->alter_info.flags|= ALTER_FOREIGN_KEY;
          }
    break;

  case 616:

/* Line 1455 of yacc.c  */
#line 5441 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 620:

/* Line 1455 of yacc.c  */
#line 5456 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 621:

/* Line 1455 of yacc.c  */
#line 5457 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 622:

/* Line 1455 of yacc.c  */
#line 5461 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 623:

/* Line 1455 of yacc.c  */
#line 5466 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0;
            lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset=NULL;
	    lex->vcol_info= 0;
            lex->option_list= NULL;
          }
    break;

  case 624:

/* Line 1455 of yacc.c  */
#line 5477 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd, &(yyvsp[(1) - (3)].lex_str), (enum enum_field_types) (yyvsp[(3) - (3)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value, 
                                  &lex->comment,
                                  lex->change,&lex->interval_list,lex->charset,
                                  lex->uint_geom_type,
                                  lex->vcol_info, lex->option_list))
              MYSQL_YYABORT;
          }
    break;

  case 625:

/* Line 1455 of yacc.c  */
#line 5491 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 626:

/* Line 1455 of yacc.c  */
#line 5495 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= (enum enum_field_types)MYSQL_TYPE_VIRTUAL;
            Lex->vcol_info->set_field_type((enum enum_field_types) (yyvsp[(1) - (8)].num));
          }
    break;

  case 628:

/* Line 1455 of yacc.c  */
#line 5503 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 629:

/* Line 1455 of yacc.c  */
#line 5508 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->vcol_info->set_stored_in_db_flag(FALSE);
          }
    break;

  case 630:

/* Line 1455 of yacc.c  */
#line 5512 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->vcol_info->set_stored_in_db_flag(FALSE);
          }
    break;

  case 631:

/* Line 1455 of yacc.c  */
#line 5516 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->vcol_info->set_stored_in_db_flag(TRUE);
          }
    break;

  case 632:

/* Line 1455 of yacc.c  */
#line 5522 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 633:

/* Line 1455 of yacc.c  */
#line 5523 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 634:

/* Line 1455 of yacc.c  */
#line 5527 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 636:

/* Line 1455 of yacc.c  */
#line 5533 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 637:

/* Line 1455 of yacc.c  */
#line 5539 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_KEY_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 638:

/* Line 1455 of yacc.c  */
#line 5544 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 639:

/* Line 1455 of yacc.c  */
#line 5549 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              "PARSE_VCOL_EXPR" can only be used by the SQL server
              when reading a '*.frm' file.
              Prevent the end user from invoking this command.
            */
            if (!Lex->parse_vcol_expr)
            {
              my_message(ER_SYNTAX_ERROR, ER(ER_SYNTAX_ERROR), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 640:

/* Line 1455 of yacc.c  */
#line 5565 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->vcol_info= new Virtual_column_info();
            if (!Lex->vcol_info)
            {
              mem_alloc_error(sizeof(Virtual_column_info));
              MYSQL_YYABORT;
            }
            uint expr_len= (uint)((yyvsp[(3) - (3)].simple_string) - (yyvsp[(1) - (3)].simple_string)) - 1;
            Lex->vcol_info->expr_str.str= (char* ) sql_memdup((yyvsp[(1) - (3)].simple_string) + 1, expr_len);
            Lex->vcol_info->expr_str.length= expr_len;
            Lex->vcol_info->expr_item= (yyvsp[(2) - (3)].item);
          }
    break;

  case 641:

/* Line 1455 of yacc.c  */
#line 5580 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 642:

/* Line 1455 of yacc.c  */
#line 5581 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 643:

/* Line 1455 of yacc.c  */
#line 5582 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_FLOAT; }
    break;

  case 644:

/* Line 1455 of yacc.c  */
#line 5584 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 645:

/* Line 1455 of yacc.c  */
#line 5589 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 646:

/* Line 1455 of yacc.c  */
#line 5593 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 647:

/* Line 1455 of yacc.c  */
#line 5598 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 648:

/* Line 1455 of yacc.c  */
#line 5603 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 649:

/* Line 1455 of yacc.c  */
#line 5607 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 650:

/* Line 1455 of yacc.c  */
#line 5612 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 651:

/* Line 1455 of yacc.c  */
#line 5617 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 652:

/* Line 1455 of yacc.c  */
#line 5623 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 653:

/* Line 1455 of yacc.c  */
#line 5628 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 654:

/* Line 1455 of yacc.c  */
#line 5634 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 655:

/* Line 1455 of yacc.c  */
#line 5638 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= MYSQL_TYPE_VARCHAR;
            Lex->charset=national_charset_info;
          }
    break;

  case 656:

/* Line 1455 of yacc.c  */
#line 5643 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 657:

/* Line 1455 of yacc.c  */
#line 5648 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->length)
            {
              errno= 0;
              ulong length= strtoul(Lex->length, NULL, 10);
              if (errno == 0 && length <= MAX_FIELD_BLOBLENGTH && length != 4)
              {
                char buff[sizeof("YEAR()") + MY_INT64_NUM_DECIMAL_DIGITS + 1];
                my_snprintf(buff, sizeof(buff), "YEAR(%lu)", length);
                push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
                                    ER_WARN_DEPRECATED_SYNTAX,
                                    ER(ER_WARN_DEPRECATED_SYNTAX),
                                    buff, "YEAR(4)");
              }
            }
            (yyval.num)=MYSQL_TYPE_YEAR;
          }
    break;

  case 658:

/* Line 1455 of yacc.c  */
#line 5666 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATE; }
    break;

  case 659:

/* Line 1455 of yacc.c  */
#line 5668 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TIME; }
    break;

  case 660:

/* Line 1455 of yacc.c  */
#line 5670 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (thd->variables.sql_mode & MODE_MAXDB)
              (yyval.num)=MYSQL_TYPE_DATETIME;
            else
            {
              /* 
                Unlike other types TIMESTAMP fields are NOT NULL by default.
              */
              Lex->type|= NOT_NULL_FLAG;
              (yyval.num)=MYSQL_TYPE_TIMESTAMP;
            }
          }
    break;

  case 661:

/* Line 1455 of yacc.c  */
#line 5683 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATETIME; }
    break;

  case 662:

/* Line 1455 of yacc.c  */
#line 5685 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_TINY_BLOB;
          }
    break;

  case 663:

/* Line 1455 of yacc.c  */
#line 5690 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_BLOB;
          }
    break;

  case 664:

/* Line 1455 of yacc.c  */
#line 5695 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            Lex->charset=&my_charset_bin;
            Lex->uint_geom_type= (uint)(yyvsp[(1) - (1)].num);
            (yyval.num)=MYSQL_TYPE_GEOMETRY;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 665:

/* Line 1455 of yacc.c  */
#line 5707 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 666:

/* Line 1455 of yacc.c  */
#line 5712 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_LONG_BLOB;
          }
    break;

  case 667:

/* Line 1455 of yacc.c  */
#line 5717 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 668:

/* Line 1455 of yacc.c  */
#line 5722 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 669:

/* Line 1455 of yacc.c  */
#line 5724 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
    break;

  case 670:

/* Line 1455 of yacc.c  */
#line 5726 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_BLOB; }
    break;

  case 671:

/* Line 1455 of yacc.c  */
#line 5728 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 672:

/* Line 1455 of yacc.c  */
#line 5730 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
    break;

  case 673:

/* Line 1455 of yacc.c  */
#line 5732 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 674:

/* Line 1455 of yacc.c  */
#line 5734 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 675:

/* Line 1455 of yacc.c  */
#line 5736 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 676:

/* Line 1455 of yacc.c  */
#line 5738 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {Lex->interval_list.empty();}
    break;

  case 677:

/* Line 1455 of yacc.c  */
#line 5740 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_ENUM; }
    break;

  case 678:

/* Line 1455 of yacc.c  */
#line 5742 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->interval_list.empty();}
    break;

  case 679:

/* Line 1455 of yacc.c  */
#line 5744 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SET; }
    break;

  case 680:

/* Line 1455 of yacc.c  */
#line 5746 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 681:

/* Line 1455 of yacc.c  */
#line 5748 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_LONGLONG;
            Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
              UNIQUE_FLAG);
          }
    break;

  case 682:

/* Line 1455 of yacc.c  */
#line 5756 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRY; }
    break;

  case 683:

/* Line 1455 of yacc.c  */
#line 5757 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; }
    break;

  case 684:

/* Line 1455 of yacc.c  */
#line 5759 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->length= (char*)"25";
            (yyval.num)= Field::GEOM_POINT;
          }
    break;

  case 685:

/* Line 1455 of yacc.c  */
#line 5763 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOINT; }
    break;

  case 686:

/* Line 1455 of yacc.c  */
#line 5764 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_LINESTRING; }
    break;

  case 687:

/* Line 1455 of yacc.c  */
#line 5765 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTILINESTRING; }
    break;

  case 688:

/* Line 1455 of yacc.c  */
#line 5766 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_POLYGON; }
    break;

  case 689:

/* Line 1455 of yacc.c  */
#line 5767 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOLYGON; }
    break;

  case 690:

/* Line 1455 of yacc.c  */
#line 5771 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 691:

/* Line 1455 of yacc.c  */
#line 5775 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 692:

/* Line 1455 of yacc.c  */
#line 5776 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 693:

/* Line 1455 of yacc.c  */
#line 5780 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 694:

/* Line 1455 of yacc.c  */
#line 5781 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 695:

/* Line 1455 of yacc.c  */
#line 5785 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 696:

/* Line 1455 of yacc.c  */
#line 5786 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 697:

/* Line 1455 of yacc.c  */
#line 5787 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 698:

/* Line 1455 of yacc.c  */
#line 5788 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 699:

/* Line 1455 of yacc.c  */
#line 5789 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 700:

/* Line 1455 of yacc.c  */
#line 5793 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG; }
    break;

  case 701:

/* Line 1455 of yacc.c  */
#line 5794 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 702:

/* Line 1455 of yacc.c  */
#line 5795 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SHORT; }
    break;

  case 703:

/* Line 1455 of yacc.c  */
#line 5796 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_INT24; }
    break;

  case 704:

/* Line 1455 of yacc.c  */
#line 5797 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONGLONG; }
    break;

  case 705:

/* Line 1455 of yacc.c  */
#line 5802 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ?
              MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE;
          }
    break;

  case 706:

/* Line 1455 of yacc.c  */
#line 5807 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 707:

/* Line 1455 of yacc.c  */
#line 5809 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 708:

/* Line 1455 of yacc.c  */
#line 5814 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->dec=Lex->length= (char*)0; }
    break;

  case 709:

/* Line 1455 of yacc.c  */
#line 5816 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->dec= (char*)0; }
    break;

  case 710:

/* Line 1455 of yacc.c  */
#line 5818 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 711:

/* Line 1455 of yacc.c  */
#line 5823 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=(yyvsp[(2) - (5)].lex_str).str;
            lex->dec=(yyvsp[(4) - (5)].lex_str).str;
          }
    break;

  case 712:

/* Line 1455 of yacc.c  */
#line 5831 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 713:

/* Line 1455 of yacc.c  */
#line 5832 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 714:

/* Line 1455 of yacc.c  */
#line 5836 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 715:

/* Line 1455 of yacc.c  */
#line 5837 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 716:

/* Line 1455 of yacc.c  */
#line 5841 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 717:

/* Line 1455 of yacc.c  */
#line 5842 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG;}
    break;

  case 718:

/* Line 1455 of yacc.c  */
#line 5843 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
    break;

  case 719:

/* Line 1455 of yacc.c  */
#line 5847 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 720:

/* Line 1455 of yacc.c  */
#line 5848 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 721:

/* Line 1455 of yacc.c  */
#line 5849 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 722:

/* Line 1455 of yacc.c  */
#line 5850 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 723:

/* Line 1455 of yacc.c  */
#line 5853 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->length=(char*) 0; /* use default length */ }
    break;

  case 724:

/* Line 1455 of yacc.c  */
#line 5854 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 725:

/* Line 1455 of yacc.c  */
#line 5858 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 726:

/* Line 1455 of yacc.c  */
#line 5859 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 727:

/* Line 1455 of yacc.c  */
#line 5863 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 728:

/* Line 1455 of yacc.c  */
#line 5864 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 729:

/* Line 1455 of yacc.c  */
#line 5868 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 731:

/* Line 1455 of yacc.c  */
#line 5873 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type&= ~ NOT_NULL_FLAG; }
    break;

  case 732:

/* Line 1455 of yacc.c  */
#line 5874 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= NOT_NULL_FLAG; }
    break;

  case 733:

/* Line 1455 of yacc.c  */
#line 5875 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->default_value=(yyvsp[(2) - (2)].item); }
    break;

  case 734:

/* Line 1455 of yacc.c  */
#line 5877 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root) Item_func_now_local(6);
            if (item == NULL)
              MYSQL_YYABORT;
            Lex->on_update_value= item;
          }
    break;

  case 735:

/* Line 1455 of yacc.c  */
#line 5883 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
    break;

  case 736:

/* Line 1455 of yacc.c  */
#line 5885 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            LEX *lex=Lex;
            lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 737:

/* Line 1455 of yacc.c  */
#line 5891 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 738:

/* Line 1455 of yacc.c  */
#line 5897 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 739:

/* Line 1455 of yacc.c  */
#line 5903 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_KEY_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX; 
          }
    break;

  case 740:

/* Line 1455 of yacc.c  */
#line 5908 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 741:

/* Line 1455 of yacc.c  */
#line 5910 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[(2) - (2)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(2) - (2)].charset)->name,Lex->charset->csname);
              MYSQL_YYABORT;
            }
            else
            {
              Lex->charset=(yyvsp[(2) - (2)].charset);
            }
          }
    break;

  case 742:

/* Line 1455 of yacc.c  */
#line 5923 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true, &Lex->option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 743:

/* Line 1455 of yacc.c  */
#line 5929 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), false, &Lex->option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 744:

/* Line 1455 of yacc.c  */
#line 5935 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].ulonglong_number), &Lex->option_list,
                                  &Lex->option_list_last, thd->mem_root);
          }
    break;

  case 745:

/* Line 1455 of yacc.c  */
#line 5941 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), &Lex->option_list, &Lex->option_list_last);
          }
    break;

  case 746:

/* Line 1455 of yacc.c  */
#line 5950 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          (yyval.num)= (yyvsp[(1) - (2)].num);

          if (Lex->charset) /* Lex->charset is scanned in "type" */
          {
            if (!(Lex->charset= merge_charset_and_collation(Lex->charset, (yyvsp[(2) - (2)].charset))))
              MYSQL_YYABORT;
          }
          else if ((yyvsp[(2) - (2)].charset))
          {
            my_error(ER_NOT_SUPPORTED_YET, MYF(0),
                     "COLLATE with no CHARACTER SET "
                     "in SP parameters, RETURNS, DECLARE");
            MYSQL_YYABORT;
          }
        }
    break;

  case 747:

/* Line 1455 of yacc.c  */
#line 5971 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_now_local(6);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 748:

/* Line 1455 of yacc.c  */
#line 5977 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 749:

/* Line 1455 of yacc.c  */
#line 5981 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 750:

/* Line 1455 of yacc.c  */
#line 5982 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 751:

/* Line 1455 of yacc.c  */
#line 5986 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 752:

/* Line 1455 of yacc.c  */
#line 5987 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 753:

/* Line 1455 of yacc.c  */
#line 5992 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 754:

/* Line 1455 of yacc.c  */
#line 5999 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 755:

/* Line 1455 of yacc.c  */
#line 6003 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 756:

/* Line 1455 of yacc.c  */
#line 6004 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 757:

/* Line 1455 of yacc.c  */
#line 6008 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)= NULL; }
    break;

  case 758:

/* Line 1455 of yacc.c  */
#line 6009 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)= (yyvsp[(2) - (2)].charset); }
    break;

  case 759:

/* Line 1455 of yacc.c  */
#line 6014 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))) &&
                !((yyval.charset)=get_old_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 760:

/* Line 1455 of yacc.c  */
#line 6022 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 761:

/* Line 1455 of yacc.c  */
#line 6026 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 762:

/* Line 1455 of yacc.c  */
#line 6027 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 763:

/* Line 1455 of yacc.c  */
#line 6032 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str,MYF(0))))
            {
              my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 764:

/* Line 1455 of yacc.c  */
#line 6042 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 765:

/* Line 1455 of yacc.c  */
#line 6043 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(2) - (2)].charset); }
    break;

  case 766:

/* Line 1455 of yacc.c  */
#line 6047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
    break;

  case 767:

/* Line 1455 of yacc.c  */
#line 6048 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 768:

/* Line 1455 of yacc.c  */
#line 6052 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 769:

/* Line 1455 of yacc.c  */
#line 6053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 770:

/* Line 1455 of yacc.c  */
#line 6058 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->charset= &my_charset_latin1; }
    break;

  case 771:

/* Line 1455 of yacc.c  */
#line 6060 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset= &my_charset_latin1_bin;
          }
    break;

  case 772:

/* Line 1455 of yacc.c  */
#line 6064 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset= &my_charset_latin1_bin;
          }
    break;

  case 773:

/* Line 1455 of yacc.c  */
#line 6071 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 774:

/* Line 1455 of yacc.c  */
#line 6080 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_name("ucs2_bin", MYF(0))))
            {
              my_error(ER_UNKNOWN_COLLATION, MYF(0), "ucs2_bin");
              MYSQL_YYABORT;
            }
          }
    break;

  case 775:

/* Line 1455 of yacc.c  */
#line 6088 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_name("ucs2_bin", MYF(0))))
            {
              my_error(ER_UNKNOWN_COLLATION, MYF(0), "ucs2_bin");
              MYSQL_YYABORT;
            }
          }
    break;

  case 776:

/* Line 1455 of yacc.c  */
#line 6098 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->charset=NULL; }
    break;

  case 779:

/* Line 1455 of yacc.c  */
#line 6101 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->charset=&my_charset_bin; }
    break;

  case 780:

/* Line 1455 of yacc.c  */
#line 6102 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (3)].charset); }
    break;

  case 781:

/* Line 1455 of yacc.c  */
#line 6104 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset= NULL;
            Lex->type|= BINCMP_FLAG;
          }
    break;

  case 782:

/* Line 1455 of yacc.c  */
#line 6109 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->charset= (yyvsp[(3) - (3)].charset);
            Lex->type|= BINCMP_FLAG;
          }
    break;

  case 783:

/* Line 1455 of yacc.c  */
#line 6116 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 784:

/* Line 1455 of yacc.c  */
#line 6117 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 787:

/* Line 1455 of yacc.c  */
#line 6132 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.table)=(yyvsp[(2) - (5)].table);
          }
    break;

  case 788:

/* Line 1455 of yacc.c  */
#line 6139 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ref_list.empty(); }
    break;

  case 790:

/* Line 1455 of yacc.c  */
#line 6145 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Key_part_spec *key= new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0);
            if (key == NULL)
              MYSQL_YYABORT;
            Lex->ref_list.push_back(key);
          }
    break;

  case 791:

/* Line 1455 of yacc.c  */
#line 6152 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Key_part_spec *key= new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0);
            if (key == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->ref_list.empty();
            lex->ref_list.push_back(key);
          }
    break;

  case 792:

/* Line 1455 of yacc.c  */
#line 6164 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; }
    break;

  case 793:

/* Line 1455 of yacc.c  */
#line 6166 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
    break;

  case 794:

/* Line 1455 of yacc.c  */
#line 6168 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
    break;

  case 795:

/* Line 1455 of yacc.c  */
#line 6170 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
    break;

  case 796:

/* Line 1455 of yacc.c  */
#line 6175 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->fk_update_opt= Foreign_key::FK_OPTION_UNDEF;
            lex->fk_delete_opt= Foreign_key::FK_OPTION_UNDEF;
          }
    break;

  case 797:

/* Line 1455 of yacc.c  */
#line 6181 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
            lex->fk_delete_opt= Foreign_key::FK_OPTION_UNDEF;
          }
    break;

  case 798:

/* Line 1455 of yacc.c  */
#line 6187 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->fk_update_opt= Foreign_key::FK_OPTION_UNDEF;
            lex->fk_delete_opt= (yyvsp[(3) - (3)].m_fk_option);
          }
    break;

  case 799:

/* Line 1455 of yacc.c  */
#line 6194 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
            lex->fk_delete_opt= (yyvsp[(6) - (6)].m_fk_option);
          }
    break;

  case 800:

/* Line 1455 of yacc.c  */
#line 6201 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
            lex->fk_delete_opt= (yyvsp[(3) - (6)].m_fk_option);
          }
    break;

  case 801:

/* Line 1455 of yacc.c  */
#line 6209 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_fk_option)= Foreign_key::FK_OPTION_RESTRICT; }
    break;

  case 802:

/* Line 1455 of yacc.c  */
#line 6210 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_fk_option)= Foreign_key::FK_OPTION_CASCADE; }
    break;

  case 803:

/* Line 1455 of yacc.c  */
#line 6211 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_fk_option)= Foreign_key::FK_OPTION_SET_NULL; }
    break;

  case 804:

/* Line 1455 of yacc.c  */
#line 6212 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_fk_option)= Foreign_key::FK_OPTION_NO_ACTION; }
    break;

  case 805:

/* Line 1455 of yacc.c  */
#line 6213 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_fk_option)= Foreign_key::FK_OPTION_DEFAULT;  }
    break;

  case 806:

/* Line 1455 of yacc.c  */
#line 6217 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 807:

/* Line 1455 of yacc.c  */
#line 6221 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_type)= Key::PRIMARY; }
    break;

  case 808:

/* Line 1455 of yacc.c  */
#line 6222 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 809:

/* Line 1455 of yacc.c  */
#line 6226 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 810:

/* Line 1455 of yacc.c  */
#line 6227 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 811:

/* Line 1455 of yacc.c  */
#line 6231 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 813:

/* Line 1455 of yacc.c  */
#line 6236 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 814:

/* Line 1455 of yacc.c  */
#line 6237 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 815:

/* Line 1455 of yacc.c  */
#line 6238 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 816:

/* Line 1455 of yacc.c  */
#line 6242 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 817:

/* Line 1455 of yacc.c  */
#line 6243 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 818:

/* Line 1455 of yacc.c  */
#line 6247 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT;}
    break;

  case 819:

/* Line 1455 of yacc.c  */
#line 6252 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.key_type)= Key::SPATIAL;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 820:

/* Line 1455 of yacc.c  */
#line 6264 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->key_create_info= default_key_create_info;
          }
    break;

  case 823:

/* Line 1455 of yacc.c  */
#line 6281 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 825:

/* Line 1455 of yacc.c  */
#line 6286 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 827:

/* Line 1455 of yacc.c  */
#line 6291 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 835:

/* Line 1455 of yacc.c  */
#line 6311 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 836:

/* Line 1455 of yacc.c  */
#line 6312 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 837:

/* Line 1455 of yacc.c  */
#line 6317 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 838:

/* Line 1455 of yacc.c  */
#line 6318 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 839:

/* Line 1455 of yacc.c  */
#line 6320 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true, &Lex->option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 840:

/* Line 1455 of yacc.c  */
#line 6326 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), false, &Lex->option_list,
                                  &Lex->option_list_last);
          }
    break;

  case 841:

/* Line 1455 of yacc.c  */
#line 6332 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].ulonglong_number), &Lex->option_list,
                                  &Lex->option_list_last, thd->mem_root);
          }
    break;

  case 842:

/* Line 1455 of yacc.c  */
#line 6338 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            new (thd->mem_root)
              engine_option_value((yyvsp[(1) - (3)].lex_str), &Lex->option_list, &Lex->option_list_last);
          }
    break;

  case 847:

/* Line 1455 of yacc.c  */
#line 6356 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (plugin_is_ready(&(yyvsp[(3) - (3)].lex_str), MYSQL_FTPARSER_PLUGIN))
              Lex->key_create_info.parser_name= (yyvsp[(3) - (3)].lex_str);
            else
            {
              my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 848:

/* Line 1455 of yacc.c  */
#line 6368 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
    break;

  case 849:

/* Line 1455 of yacc.c  */
#line 6369 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_RTREE; }
    break;

  case 850:

/* Line 1455 of yacc.c  */
#line 6370 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_HASH; }
    break;

  case 851:

/* Line 1455 of yacc.c  */
#line 6374 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(3) - (4)].key_part)); }
    break;

  case 852:

/* Line 1455 of yacc.c  */
#line 6375 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(1) - (2)].key_part)); }
    break;

  case 853:

/* Line 1455 of yacc.c  */
#line 6380 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0);
            if ((yyval.key_part) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 854:

/* Line 1455 of yacc.c  */
#line 6386 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
            if (!key_part_len)
            {
              my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).str);
            }
            (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (4)].lex_str), (uint) key_part_len);
            if ((yyval.key_part) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 855:

/* Line 1455 of yacc.c  */
#line 6399 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 856:

/* Line 1455 of yacc.c  */
#line 6400 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 857:

/* Line 1455 of yacc.c  */
#line 6404 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 858:

/* Line 1455 of yacc.c  */
#line 6405 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 859:

/* Line 1455 of yacc.c  */
#line 6409 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(1) - (1)].string)); }
    break;

  case 860:

/* Line 1455 of yacc.c  */
#line 6410 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(3) - (3)].string)); }
    break;

  case 861:

/* Line 1455 of yacc.c  */
#line 6418 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->name.str= 0;
            lex->name.length= 0;
            lex->sql_command= SQLCOM_ALTER_TABLE;
            lex->duplicates= DUP_ERROR; 
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(4) - (4)].table), NULL,
                                                   TL_OPTION_UPDATING,
                                                   TL_READ_NO_INSERT,
                                                   MDL_SHARED_NO_WRITE))
              MYSQL_YYABORT;
            lex->col_list.empty();
            lex->select_lex.init_order();
            lex->select_lex.db= (lex->select_lex.table_list.first)->db;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.db_type= 0;
            lex->create_info.default_table_charset= NULL;
            lex->create_info.row_type= ROW_TYPE_NOT_USED;
            lex->alter_info.reset();
            lex->no_write_to_binlog= 0;
            lex->create_info.storage_media= HA_SM_DEFAULT;
            lex->create_last_non_select_table= lex->last_table();
            DBUG_ASSERT(!lex->m_stmt);
          }
    break;

  case 862:

/* Line 1455 of yacc.c  */
#line 6443 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            if (!lex->m_stmt)
            {
              /* Create a generic ALTER TABLE statment. */
              lex->m_stmt= new (thd->mem_root) Alter_table_statement(lex);
              if (lex->m_stmt == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 863:

/* Line 1455 of yacc.c  */
#line 6454 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 864:

/* Line 1455 of yacc.c  */
#line 6459 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_ALTER_DB;
            lex->name= (yyvsp[(3) - (5)].lex_str);
            if (lex->name.str == NULL &&
                lex->copy_db_to(&lex->name.str, &lex->name.length))
              MYSQL_YYABORT;
          }
    break;

  case 865:

/* Line 1455 of yacc.c  */
#line 6468 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "DATABASE");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_ALTER_DB_UPGRADE;
            lex->name= (yyvsp[(3) - (7)].lex_str);
          }
    break;

  case 866:

/* Line 1455 of yacc.c  */
#line 6479 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 867:

/* Line 1455 of yacc.c  */
#line 6490 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_PROCEDURE;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 868:

/* Line 1455 of yacc.c  */
#line 6497 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 869:

/* Line 1455 of yacc.c  */
#line 6508 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_FUNCTION;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 870:

/* Line 1455 of yacc.c  */
#line 6515 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 871:

/* Line 1455 of yacc.c  */
#line 6526 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 872:

/* Line 1455 of yacc.c  */
#line 6533 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED;
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 873:

/* Line 1455 of yacc.c  */
#line 6545 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 874:

/* Line 1455 of yacc.c  */
#line 6547 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* 
              It is safe to use Lex->spname because
              ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO
              is not allowed. Lex->spname is used in the case of RENAME TO
              If it had to be supported spname had to be added to
              Event_parse_data.
            */

            if (!(Lex->event_parse_data= Event_parse_data::new_instance(thd)))
              MYSQL_YYABORT;
            Lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);

            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 875:

/* Line 1455 of yacc.c  */
#line 6567 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyvsp[(6) - (10)].num) || (yyvsp[(7) - (10)].num) || (yyvsp[(8) - (10)].num) || (yyvsp[(9) - (10)].num) || (yyvsp[(10) - (10)].num)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 876:

/* Line 1455 of yacc.c  */
#line 6580 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE;
          }
    break;

  case 877:

/* Line 1455 of yacc.c  */
#line 6585 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP;
          }
    break;

  case 878:

/* Line 1455 of yacc.c  */
#line 6590 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE;
          }
    break;

  case 879:

/* Line 1455 of yacc.c  */
#line 6595 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE;
          }
    break;

  case 880:

/* Line 1455 of yacc.c  */
#line 6600 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_ALTER_SERVER;
            lex->server_options.server_name= (yyvsp[(3) - (7)].lex_str).str;
            lex->server_options.server_name_length= (yyvsp[(3) - (7)].lex_str).length;
          }
    break;

  case 881:

/* Line 1455 of yacc.c  */
#line 6609 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 882:

/* Line 1455 of yacc.c  */
#line 6610 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 883:

/* Line 1455 of yacc.c  */
#line 6611 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 884:

/* Line 1455 of yacc.c  */
#line 6612 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 885:

/* Line 1455 of yacc.c  */
#line 6616 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 886:

/* Line 1455 of yacc.c  */
#line 6618 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Use lex's spname to hold the new name.
              The original name is in the Event_parse_data object
            */
            Lex->spname= (yyvsp[(3) - (3)].spname); 
            (yyval.num)= 1;
          }
    break;

  case 887:

/* Line 1455 of yacc.c  */
#line 6629 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 888:

/* Line 1455 of yacc.c  */
#line 6630 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 889:

/* Line 1455 of yacc.c  */
#line 6634 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; }
    break;

  case 890:

/* Line 1455 of yacc.c  */
#line 6635 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 892:

/* Line 1455 of yacc.c  */
#line 6640 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
    break;

  case 893:

/* Line 1455 of yacc.c  */
#line 6641 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
    break;

  case 899:

/* Line 1455 of yacc.c  */
#line 6658 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_PARTITION;
          }
    break;

  case 900:

/* Line 1455 of yacc.c  */
#line 6663 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
          }
    break;

  case 901:

/* Line 1455 of yacc.c  */
#line 6670 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root)
                          Alter_table_optimize_partition_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 903:

/* Line 1455 of yacc.c  */
#line 6683 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root)
                          Alter_table_analyze_partition_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 904:

/* Line 1455 of yacc.c  */
#line 6694 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->check_opt.init();
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root)
                          Alter_table_check_partition_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 906:

/* Line 1455 of yacc.c  */
#line 6706 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root)
                          Alter_table_repair_partition_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 908:

/* Line 1455 of yacc.c  */
#line 6718 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->alter_info.num_parts= (yyvsp[(4) - (4)].ulong_num);
          }
    break;

  case 909:

/* Line 1455 of yacc.c  */
#line 6725 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->check_opt.init();
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root)
                          Alter_table_truncate_partition_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 911:

/* Line 1455 of yacc.c  */
#line 6739 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
          }
    break;

  case 912:

/* Line 1455 of yacc.c  */
#line 6746 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ALL_PARTITION;
          }
    break;

  case 914:

/* Line 1455 of yacc.c  */
#line 6754 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->alter_info.flags|= ALTER_ADD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 915:

/* Line 1455 of yacc.c  */
#line 6766 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 917:

/* Line 1455 of yacc.c  */
#line 6772 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->num_parts= lex->part_info->partitions.elements;
          }
    break;

  case 918:

/* Line 1455 of yacc.c  */
#line 6777 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->part_info->num_parts= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 919:

/* Line 1455 of yacc.c  */
#line 6784 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 921:

/* Line 1455 of yacc.c  */
#line 6799 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_TABLE_REORG;
          }
    break;

  case 922:

/* Line 1455 of yacc.c  */
#line 6803 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
          }
    break;

  case 923:

/* Line 1455 of yacc.c  */
#line 6807 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            part_info->num_parts= part_info->partitions.elements;
          }
    break;

  case 924:

/* Line 1455 of yacc.c  */
#line 6814 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 925:

/* Line 1455 of yacc.c  */
#line 6815 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 926:

/* Line 1455 of yacc.c  */
#line 6820 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->alter_info.partition_names.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 929:

/* Line 1455 of yacc.c  */
#line 6840 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change=0;
            lex->alter_info.flags|= ALTER_ADD_COLUMN;
          }
    break;

  case 930:

/* Line 1455 of yacc.c  */
#line 6849 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_last_non_select_table= Lex->last_table();
          }
    break;

  case 931:

/* Line 1455 of yacc.c  */
#line 6853 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_last_non_select_table= Lex->last_table();
            Lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 932:

/* Line 1455 of yacc.c  */
#line 6858 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
          }
    break;

  case 933:

/* Line 1455 of yacc.c  */
#line 6862 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change= (yyvsp[(3) - (3)].lex_str).str;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
            lex->option_list= NULL;
          }
    break;

  case 934:

/* Line 1455 of yacc.c  */
#line 6869 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_last_non_select_table= Lex->last_table();
          }
    break;

  case 935:

/* Line 1455 of yacc.c  */
#line 6873 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0; lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset= NULL;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
	    lex->vcol_info= 0;
            lex->option_list= NULL;
          }
    break;

  case 936:

/* Line 1455 of yacc.c  */
#line 6884 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd,&(yyvsp[(3) - (5)].lex_str),
                                  (enum enum_field_types) (yyvsp[(5) - (5)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->default_value, lex->on_update_value,
                                  &lex->comment,
                                  (yyvsp[(3) - (5)].lex_str).str, &lex->interval_list, lex->charset,
                                  lex->uint_geom_type,
                                  lex->vcol_info, lex->option_list))
              MYSQL_YYABORT;
          }
    break;

  case 937:

/* Line 1455 of yacc.c  */
#line 6897 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->create_last_non_select_table= Lex->last_table();
          }
    break;

  case 938:

/* Line 1455 of yacc.c  */
#line 6901 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::COLUMN, (yyvsp[(3) - (4)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_COLUMN;
          }
    break;

  case 939:

/* Line 1455 of yacc.c  */
#line 6910 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
          }
    break;

  case 940:

/* Line 1455 of yacc.c  */
#line 6914 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, primary_key_name);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 941:

/* Line 1455 of yacc.c  */
#line 6923 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (3)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->alter_info.drop_list.push_back(ad);
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 942:

/* Line 1455 of yacc.c  */
#line 6932 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= DISABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 943:

/* Line 1455 of yacc.c  */
#line 6938 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= ENABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 944:

/* Line 1455 of yacc.c  */
#line 6944 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_column *ac= new Alter_column((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item));
            if (ac == NULL)
              MYSQL_YYABORT;
            lex->alter_info.alter_list.push_back(ac);
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 945:

/* Line 1455 of yacc.c  */
#line 6953 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_column *ac= new Alter_column((yyvsp[(3) - (5)].lex_str).str, (Item*) 0);
            if (ac == NULL)
              MYSQL_YYABORT;
            lex->alter_info.alter_list.push_back(ac);
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 946:

/* Line 1455 of yacc.c  */
#line 6962 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            size_t dummy;
            lex->select_lex.db=(yyvsp[(3) - (3)].table)->db.str;
            if (lex->select_lex.db == NULL &&
                lex->copy_db_to(&lex->select_lex.db, &dummy))
            {
              MYSQL_YYABORT;
            }
            if (check_table_name((yyvsp[(3) - (3)].table)->table.str,(yyvsp[(3) - (3)].table)->table.length, FALSE) ||
                ((yyvsp[(3) - (3)].table)->db.str && check_db_name(&(yyvsp[(3) - (3)].table)->db)))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.str);
              MYSQL_YYABORT;
            }
            lex->name= (yyvsp[(3) - (3)].table)->table;
            lex->alter_info.flags|= ALTER_RENAME;
          }
    break;

  case 947:

/* Line 1455 of yacc.c  */
#line 6981 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!(yyvsp[(4) - (5)].charset))
            {
              (yyvsp[(4) - (5)].charset)= thd->variables.collation_database;
            }
            (yyvsp[(5) - (5)].charset)= (yyvsp[(5) - (5)].charset) ? (yyvsp[(5) - (5)].charset) : (yyvsp[(4) - (5)].charset);
            if (!my_charset_same((yyvsp[(4) - (5)].charset),(yyvsp[(5) - (5)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(5) - (5)].charset)->name, (yyvsp[(4) - (5)].charset)->csname);
              MYSQL_YYABORT;
            }
            LEX *lex= Lex;
            lex->create_info.table_charset=
            lex->create_info.default_table_charset= (yyvsp[(5) - (5)].charset);
            lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
              HA_CREATE_USED_DEFAULT_CHARSET);
            lex->alter_info.flags|= ALTER_CONVERT;
          }
    break;

  case 948:

/* Line 1455 of yacc.c  */
#line 7001 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_OPTIONS;
            if ((lex->create_info.used_fields & HA_CREATE_USED_ENGINE) &&
                !lex->create_info.db_type)
            {
              lex->create_info.used_fields&= ~HA_CREATE_USED_ENGINE;
            }
          }
    break;

  case 949:

/* Line 1455 of yacc.c  */
#line 7011 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_RECREATE;
          }
    break;

  case 950:

/* Line 1455 of yacc.c  */
#line 7015 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_ORDER;
          }
    break;

  case 951:

/* Line 1455 of yacc.c  */
#line 7022 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 952:

/* Line 1455 of yacc.c  */
#line 7023 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 953:

/* Line 1455 of yacc.c  */
#line 7027 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ignore= 0;}
    break;

  case 954:

/* Line 1455 of yacc.c  */
#line 7028 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ignore= 1;}
    break;

  case 955:

/* Line 1455 of yacc.c  */
#line 7032 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ignore= Lex->online= 0;}
    break;

  case 961:

/* Line 1455 of yacc.c  */
#line 7046 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ignore= 1;}
    break;

  case 962:

/* Line 1455 of yacc.c  */
#line 7047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->online= 1;}
    break;

  case 963:

/* Line 1455 of yacc.c  */
#line 7051 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->drop_mode= DROP_DEFAULT; }
    break;

  case 964:

/* Line 1455 of yacc.c  */
#line 7052 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->drop_mode= DROP_RESTRICT; }
    break;

  case 965:

/* Line 1455 of yacc.c  */
#line 7053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->drop_mode= DROP_CASCADE; }
    break;

  case 966:

/* Line 1455 of yacc.c  */
#line 7057 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 967:

/* Line 1455 of yacc.c  */
#line 7058 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { store_position_for_column((yyvsp[(2) - (2)].lex_str).str); }
    break;

  case 968:

/* Line 1455 of yacc.c  */
#line 7059 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { store_position_for_column(first_keyword); }
    break;

  case 969:

/* Line 1455 of yacc.c  */
#line 7063 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 970:

/* Line 1455 of yacc.c  */
#line 7064 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 971:

/* Line 1455 of yacc.c  */
#line 7065 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 972:

/* Line 1455 of yacc.c  */
#line 7066 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 973:

/* Line 1455 of yacc.c  */
#line 7075 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* If you change this code don't forget to update SLAVE START too */
          }
    break;

  case 974:

/* Line 1455 of yacc.c  */
#line 7082 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 975:

/* Line 1455 of yacc.c  */
#line 7084 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
            /* If you change this code don't forget to update SLAVE STOP too */
          }
    break;

  case 976:

/* Line 1455 of yacc.c  */
#line 7091 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
          }
    break;

  case 977:

/* Line 1455 of yacc.c  */
#line 7097 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 978:

/* Line 1455 of yacc.c  */
#line 7099 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
          }
    break;

  case 979:

/* Line 1455 of yacc.c  */
#line 7108 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_BEGIN;
            lex->start_transaction_opt= (yyvsp[(3) - (3)].num);
          }
    break;

  case 980:

/* Line 1455 of yacc.c  */
#line 7116 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 981:

/* Line 1455 of yacc.c  */
#line 7118 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
          }
    break;

  case 982:

/* Line 1455 of yacc.c  */
#line 7124 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->slave_thd_opt= 0; }
    break;

  case 983:

/* Line 1455 of yacc.c  */
#line 7126 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 986:

/* Line 1455 of yacc.c  */
#line 7135 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 987:

/* Line 1455 of yacc.c  */
#line 7136 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_SQL; }
    break;

  case 988:

/* Line 1455 of yacc.c  */
#line 7137 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_IO; }
    break;

  case 989:

/* Line 1455 of yacc.c  */
#line 7141 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 990:

/* Line 1455 of yacc.c  */
#line 7143 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (((lex->mi.log_file_name || lex->mi.pos) &&
                 (lex->mi.relay_log_name || lex->mi.relay_log_pos)) ||
                !((lex->mi.log_file_name && lex->mi.pos) ||
                  (lex->mi.relay_log_name && lex->mi.relay_log_pos)))
            {
               my_message(ER_BAD_SLAVE_UNTIL_COND,
                          ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0));
               MYSQL_YYABORT;
            }
          }
    break;

  case 993:

/* Line 1455 of yacc.c  */
#line 7164 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_CHECKSUM;
            /* Will be overriden during execution. */
            YYPS->m_lock_type= TL_UNLOCK;
          }
    break;

  case 994:

/* Line 1455 of yacc.c  */
#line 7171 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 995:

/* Line 1455 of yacc.c  */
#line 7175 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags= 0; }
    break;

  case 996:

/* Line 1455 of yacc.c  */
#line 7176 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags= T_QUICK; }
    break;

  case 997:

/* Line 1455 of yacc.c  */
#line 7177 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags= T_EXTEND; }
    break;

  case 998:

/* Line 1455 of yacc.c  */
#line 7182 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPAIR;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
            /* Will be overriden during execution. */
            YYPS->m_lock_type= TL_UNLOCK;
          }
    break;

  case 999:

/* Line 1455 of yacc.c  */
#line 7192 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX* lex= thd->lex;
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root) Repair_table_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1000:

/* Line 1455 of yacc.c  */
#line 7202 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 1001:

/* Line 1455 of yacc.c  */
#line 7203 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1002:

/* Line 1455 of yacc.c  */
#line 7207 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1003:

/* Line 1455 of yacc.c  */
#line 7208 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1004:

/* Line 1455 of yacc.c  */
#line 7212 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 1005:

/* Line 1455 of yacc.c  */
#line 7213 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 1006:

/* Line 1455 of yacc.c  */
#line 7214 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_USEFRM; }
    break;

  case 1007:

/* Line 1455 of yacc.c  */
#line 7219 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_ANALYZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
            /* Will be overriden during execution. */
            YYPS->m_lock_type= TL_UNLOCK;
          }
    break;

  case 1008:

/* Line 1455 of yacc.c  */
#line 7229 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX* lex= thd->lex;
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root) Analyze_table_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1009:

/* Line 1455 of yacc.c  */
#line 7240 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
            Lex->comment= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 1010:

/* Line 1455 of yacc.c  */
#line 7248 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CHECK;
            lex->check_opt.init();
            lex->alter_info.reset();
            /* Will be overriden during execution. */
            YYPS->m_lock_type= TL_UNLOCK;
          }
    break;

  case 1011:

/* Line 1455 of yacc.c  */
#line 7263 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX* lex= thd->lex;
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root) Check_table_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1012:

/* Line 1455 of yacc.c  */
#line 7273 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 1013:

/* Line 1455 of yacc.c  */
#line 7274 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1014:

/* Line 1455 of yacc.c  */
#line 7278 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1015:

/* Line 1455 of yacc.c  */
#line 7279 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1016:

/* Line 1455 of yacc.c  */
#line 7283 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 1017:

/* Line 1455 of yacc.c  */
#line 7284 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_FAST; }
    break;

  case 1018:

/* Line 1455 of yacc.c  */
#line 7285 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_MEDIUM; }
    break;

  case 1019:

/* Line 1455 of yacc.c  */
#line 7286 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 1020:

/* Line 1455 of yacc.c  */
#line 7287 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
    break;

  case 1021:

/* Line 1455 of yacc.c  */
#line 7288 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
    break;

  case 1022:

/* Line 1455 of yacc.c  */
#line 7293 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_OPTIMIZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
            lex->alter_info.reset();
            /* Will be overriden during execution. */
            YYPS->m_lock_type= TL_UNLOCK;
          }
    break;

  case 1023:

/* Line 1455 of yacc.c  */
#line 7303 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX* lex= thd->lex;
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root) Optimize_table_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1024:

/* Line 1455 of yacc.c  */
#line 7313 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1025:

/* Line 1455 of yacc.c  */
#line 7314 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1026:

/* Line 1455 of yacc.c  */
#line 7315 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1027:

/* Line 1455 of yacc.c  */
#line 7320 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_RENAME_TABLE;
          }
    break;

  case 1028:

/* Line 1455 of yacc.c  */
#line 7324 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1029:

/* Line 1455 of yacc.c  */
#line 7326 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_RENAME_USER;
          }
    break;

  case 1030:

/* Line 1455 of yacc.c  */
#line 7333 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (3)].lex_user)) || Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 1031:

/* Line 1455 of yacc.c  */
#line 7338 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (5)].lex_user)) || Lex->users_list.push_back((yyvsp[(5) - (5)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 1034:

/* Line 1455 of yacc.c  */
#line 7351 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sl= lex->current_select;
            if (!sl->add_table_to_list(lex->thd, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE, MDL_EXCLUSIVE) ||
                !sl->add_table_to_list(lex->thd, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE, MDL_EXCLUSIVE))
              MYSQL_YYABORT;
          }
    break;

  case 1035:

/* Line 1455 of yacc.c  */
#line 7364 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.reset();
          }
    break;

  case 1036:

/* Line 1455 of yacc.c  */
#line 7368 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
            lex->ident= (yyvsp[(6) - (6)].lex_str);
          }
    break;

  case 1041:

/* Line 1455 of yacc.c  */
#line 7387 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (2)].table), NULL, 0, TL_READ,
                                           MDL_SHARED_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 1042:

/* Line 1455 of yacc.c  */
#line 7397 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (3)].table), NULL, 0, TL_READ, 
                                           MDL_SHARED_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 1043:

/* Line 1455 of yacc.c  */
#line 7406 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 1044:

/* Line 1455 of yacc.c  */
#line 7407 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str) = default_key_cache_base; }
    break;

  case 1045:

/* Line 1455 of yacc.c  */
#line 7412 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_PRELOAD_KEYS;
            lex->alter_info.reset();
          }
    break;

  case 1046:

/* Line 1455 of yacc.c  */
#line 7418 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1051:

/* Line 1455 of yacc.c  */
#line 7433 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (3)].table), NULL, (yyvsp[(3) - (3)].num), TL_READ,
                                           MDL_SHARED_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 1052:

/* Line 1455 of yacc.c  */
#line 7443 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (4)].table), NULL, (yyvsp[(4) - (4)].num), TL_READ,
                                           MDL_SHARED_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 1053:

/* Line 1455 of yacc.c  */
#line 7453 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
          }
    break;

  case 1055:

/* Line 1455 of yacc.c  */
#line 7460 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->select_lex.alloc_index_hints(thd);
            Select->set_index_hint_type(INDEX_HINT_USE, 
                                        INDEX_HINT_MASK_ALL);
          }
    break;

  case 1057:

/* Line 1455 of yacc.c  */
#line 7469 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 1059:

/* Line 1455 of yacc.c  */
#line 7475 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1060:

/* Line 1455 of yacc.c  */
#line 7476 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= TL_OPTION_IGNORE_LEAVES; }
    break;

  case 1061:

/* Line 1455 of yacc.c  */
#line 7486 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SELECT;
          }
    break;

  case 1064:

/* Line 1455 of yacc.c  */
#line 7500 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (setup_select_in_parentheses(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1066:

/* Line 1455 of yacc.c  */
#line 7510 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (setup_select_in_parentheses(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1068:

/* Line 1455 of yacc.c  */
#line 7519 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (lex->current_select->set_braces(0))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->master_unit()->first_select()->braces)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1070:

/* Line 1455 of yacc.c  */
#line 7538 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != UNION_TYPE)
              mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 1071:

/* Line 1455 of yacc.c  */
#line 7546 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1073:

/* Line 1455 of yacc.c  */
#line 7553 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1078:

/* Line 1455 of yacc.c  */
#line 7563 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->context.table_list=
              Select->context.first_name_resolution_table=
                Select->table_list.first;
          }
    break;

  case 1081:

/* Line 1455 of yacc.c  */
#line 7578 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1085:

/* Line 1455 of yacc.c  */
#line 7595 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* 
              Allow this flag only on the first top-level SELECT statement, if
              SQL_CACHE wasn't specified, and only once per query.
             */
            if (Lex->current_select != &Lex->select_lex)
            {
              my_error(ER_CANT_USE_OPTION_HERE, MYF(0), "SQL_NO_CACHE");
              MYSQL_YYABORT;
            }
            else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_CACHE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "SQL_CACHE", "SQL_NO_CACHE");
              MYSQL_YYABORT;
            }
            else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_NO_CACHE)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "SQL_NO_CACHE");
              MYSQL_YYABORT;
            }
            else
            {
              Lex->safe_to_cache_query=0;
              Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
              Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
            }
          }
    break;

  case 1086:

/* Line 1455 of yacc.c  */
#line 7623 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* 
              Allow this flag only on the first top-level SELECT statement, if
              SQL_NO_CACHE wasn't specified, and only once per query.
             */
            if (Lex->current_select != &Lex->select_lex)
            {
              my_error(ER_CANT_USE_OPTION_HERE, MYF(0), "SQL_CACHE");
              MYSQL_YYABORT;
            }         
            else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_NO_CACHE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "SQL_NO_CACHE", "SQL_CACHE");
              MYSQL_YYABORT;
            }
            else if (Lex->select_lex.sql_cache == SELECT_LEX::SQL_CACHE)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "SQL_CACHE");
              MYSQL_YYABORT;
            }
            else
            {
              Lex->safe_to_cache_query=1;
              Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
              Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
            }
          }
    break;

  case 1088:

/* Line 1455 of yacc.c  */
#line 7655 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->set_lock_for_tables(TL_WRITE);
            lex->safe_to_cache_query=0;
          }
    break;

  case 1089:

/* Line 1455 of yacc.c  */
#line 7661 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->
              set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
            lex->safe_to_cache_query=0;
          }
    break;

  case 1092:

/* Line 1455 of yacc.c  */
#line 7673 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root)
                          Item_field(&thd->lex->current_select->context,
                                     NULL, NULL, "*");
            if (item == NULL)
              MYSQL_YYABORT;
            if (add_item_to_list(thd, item))
              MYSQL_YYABORT;
            (thd->lex->current_select->with_wild)++;
          }
    break;

  case 1093:

/* Line 1455 of yacc.c  */
#line 7687 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_item_to_list(thd, (yyvsp[(2) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1094:

/* Line 1455 of yacc.c  */
#line 7692 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));

            if (add_item_to_list(thd, (yyvsp[(2) - (4)].item)))
              MYSQL_YYABORT;
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              if (Lex->sql_command == SQLCOM_CREATE_VIEW &&
                  check_column_name((yyvsp[(4) - (4)].lex_str).str))
              {
                my_error(ER_WRONG_COLUMN_NAME, MYF(0), (yyvsp[(4) - (4)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            else if (!(yyvsp[(2) - (4)].item)->name)
            {
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), thd->charset());
            }
          }
    break;

  case 1095:

/* Line 1455 of yacc.c  */
#line 7716 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start();
          }
    break;

  case 1096:

/* Line 1455 of yacc.c  */
#line 7722 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end();
          }
    break;

  case 1097:

/* Line 1455 of yacc.c  */
#line 7728 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=null_lex_str;}
    break;

  case 1098:

/* Line 1455 of yacc.c  */
#line 7729 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1099:

/* Line 1455 of yacc.c  */
#line 7730 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1100:

/* Line 1455 of yacc.c  */
#line 7731 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1101:

/* Line 1455 of yacc.c  */
#line 7732 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1102:

/* Line 1455 of yacc.c  */
#line 7736 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0;  }
    break;

  case 1103:

/* Line 1455 of yacc.c  */
#line 7737 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0;  }
    break;

  case 1104:

/* Line 1455 of yacc.c  */
#line 7738 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (yyvsp[(2) - (3)].ulong_num); }
    break;

  case 1105:

/* Line 1455 of yacc.c  */
#line 7742 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1106:

/* Line 1455 of yacc.c  */
#line 7743 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1107:

/* Line 1455 of yacc.c  */
#line 7749 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Design notes:
              Do not use a manually maintained stack like thd->lex->xxx_list,
              but use the internal bison stack ($$, $1 and $3) instead.
              Using the bison stack is:
              - more robust to changes in the grammar,
              - guaranteed to be in sync with the parser state,
              - better for performances (no memory allocation).
            */
            Item_cond_or *item1;
            Item_cond_or *item3;
            if (is_cond_or((yyvsp[(1) - (3)].item)))
            {
              item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
              if (is_cond_or((yyvsp[(3) - (3)].item)))
              {
                item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
                /*
                  (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
                */
                item3->add_at_head(item1->argument_list());
                (yyval.item) = (yyvsp[(3) - (3)].item);
              }
              else
              {
                /*
                  (X1 OR X2) OR Y ==> OR (X1, X2, Y)
                */
                item1->add((yyvsp[(3) - (3)].item));
                (yyval.item) = (yyvsp[(1) - (3)].item);
              }
            }
            else if (is_cond_or((yyvsp[(3) - (3)].item)))
            {
              item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
              /*
                X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
              */
              item3->add_at_head((yyvsp[(1) - (3)].item));
              (yyval.item) = (yyvsp[(3) - (3)].item);
            }
            else
            {
              /* X OR Y */
              (yyval.item) = new (thd->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1108:

/* Line 1455 of yacc.c  */
#line 7800 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* XOR is a proprietary extension */
            (yyval.item) = new (thd->mem_root) Item_func_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1109:

/* Line 1455 of yacc.c  */
#line 7807 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* See comments in rule expr: expr or expr */
            Item_cond_and *item1;
            Item_cond_and *item3;
            if (is_cond_and((yyvsp[(1) - (3)].item)))
            {
              item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
              if (is_cond_and((yyvsp[(3) - (3)].item)))
              {
                item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
                /*
                  (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
                */
                item3->add_at_head(item1->argument_list());
                (yyval.item) = (yyvsp[(3) - (3)].item);
              }
              else
              {
                /*
                  (X1 AND X2) AND Y ==> AND (X1, X2, Y)
                */
                item1->add((yyvsp[(3) - (3)].item));
                (yyval.item) = (yyvsp[(1) - (3)].item);
              }
            }
            else if (is_cond_and((yyvsp[(3) - (3)].item)))
            {
              item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
              /*
                X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
              */
              item3->add_at_head((yyvsp[(1) - (3)].item));
              (yyval.item) = (yyvsp[(3) - (3)].item);
            }
            else
            {
              /* X AND Y */
              (yyval.item) = new (thd->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1110:

/* Line 1455 of yacc.c  */
#line 7850 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= negate_expression(thd, (yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1111:

/* Line 1455 of yacc.c  */
#line 7856 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1112:

/* Line 1455 of yacc.c  */
#line 7862 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1113:

/* Line 1455 of yacc.c  */
#line 7868 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1114:

/* Line 1455 of yacc.c  */
#line 7874 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1115:

/* Line 1455 of yacc.c  */
#line 7880 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1116:

/* Line 1455 of yacc.c  */
#line 7886 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1118:

/* Line 1455 of yacc.c  */
#line 7896 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1119:

/* Line 1455 of yacc.c  */
#line 7902 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1120:

/* Line 1455 of yacc.c  */
#line 7908 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1121:

/* Line 1455 of yacc.c  */
#line 7914 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1122:

/* Line 1455 of yacc.c  */
#line 7920 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1124:

/* Line 1455 of yacc.c  */
#line 7930 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1125:

/* Line 1455 of yacc.c  */
#line 7936 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= negate_expression(thd, item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1126:

/* Line 1455 of yacc.c  */
#line 7945 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1127:

/* Line 1455 of yacc.c  */
#line 7951 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
            (yyval.item)= new (thd->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1128:

/* Line 1455 of yacc.c  */
#line 7959 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1129:

/* Line 1455 of yacc.c  */
#line 7965 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
            Item_func_in *item = new (thd->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
            if (item == NULL)
              MYSQL_YYABORT;
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1130:

/* Line 1455 of yacc.c  */
#line 7975 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1131:

/* Line 1455 of yacc.c  */
#line 7981 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item_func_between *item;
            item= new (thd->mem_root) Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1132:

/* Line 1455 of yacc.c  */
#line 7990 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item1= new (thd->mem_root) Item_func_soundex((yyvsp[(1) - (4)].item));
            Item *item4= new (thd->mem_root) Item_func_soundex((yyvsp[(4) - (4)].item));
            if ((item1 == NULL) || (item4 == NULL))
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_eq(item1, item4);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1133:

/* Line 1455 of yacc.c  */
#line 8000 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex->escape_used);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1134:

/* Line 1455 of yacc.c  */
#line 8006 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root) Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item),
                                                             Lex->escape_used);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_not(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1135:

/* Line 1455 of yacc.c  */
#line 8016 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_regex((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1136:

/* Line 1455 of yacc.c  */
#line 8022 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root) Item_func_regex((yyvsp[(1) - (4)].item),(yyvsp[(4) - (4)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= negate_expression(thd, item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1138:

/* Line 1455 of yacc.c  */
#line 8035 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_bit_or((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1139:

/* Line 1455 of yacc.c  */
#line 8041 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_bit_and((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1140:

/* Line 1455 of yacc.c  */
#line 8047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_shift_left((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1141:

/* Line 1455 of yacc.c  */
#line 8053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_shift_right((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1142:

/* Line 1455 of yacc.c  */
#line 8059 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1143:

/* Line 1455 of yacc.c  */
#line 8065 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1144:

/* Line 1455 of yacc.c  */
#line 8071 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1145:

/* Line 1455 of yacc.c  */
#line 8077 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1146:

/* Line 1455 of yacc.c  */
#line 8083 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1147:

/* Line 1455 of yacc.c  */
#line 8089 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1148:

/* Line 1455 of yacc.c  */
#line 8095 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1149:

/* Line 1455 of yacc.c  */
#line 8101 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1150:

/* Line 1455 of yacc.c  */
#line 8107 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1151:

/* Line 1455 of yacc.c  */
#line 8113 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_bit_xor((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1161:

/* Line 1455 of yacc.c  */
#line 8142 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_eq_creator; }
    break;

  case 1162:

/* Line 1455 of yacc.c  */
#line 8143 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ge_creator; }
    break;

  case 1163:

/* Line 1455 of yacc.c  */
#line 8144 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_gt_creator; }
    break;

  case 1164:

/* Line 1455 of yacc.c  */
#line 8145 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_le_creator; }
    break;

  case 1165:

/* Line 1455 of yacc.c  */
#line 8146 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_lt_creator; }
    break;

  case 1166:

/* Line 1455 of yacc.c  */
#line 8147 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ne_creator; }
    break;

  case 1167:

/* Line 1455 of yacc.c  */
#line 8151 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1168:

/* Line 1455 of yacc.c  */
#line 8152 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1169:

/* Line 1455 of yacc.c  */
#line 8157 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
	    (yyval.num)= DYN_COL_NULL; /* automatic type */
            lex->charset= NULL;
            lex->length= lex->dec= 0;
	  }
    break;

  case 1170:

/* Line 1455 of yacc.c  */
#line 8163 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (yyvsp[(2) - (2)].num); }
    break;

  case 1171:

/* Line 1455 of yacc.c  */
#line 8168 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_INT;
            lex->charset= NULL;
            lex->length= lex->dec= 0;
          }
    break;

  case 1172:

/* Line 1455 of yacc.c  */
#line 8175 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_UINT;
            lex->charset= NULL;
            lex->length= lex->dec= 0;
          }
    break;

  case 1173:

/* Line 1455 of yacc.c  */
#line 8182 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_DOUBLE;
            lex->charset= NULL;
            lex->length= lex->dec= 0;
          }
    break;

  case 1174:

/* Line 1455 of yacc.c  */
#line 8189 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_DOUBLE;
            lex->charset= NULL;
            lex->length= lex->dec= 0;
          }
    break;

  case 1175:

/* Line 1455 of yacc.c  */
#line 8196 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_DOUBLE;
            lex->charset= NULL;
            lex->length= lex->dec= 0;
          }
    break;

  case 1176:

/* Line 1455 of yacc.c  */
#line 8203 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= DYN_COL_DECIMAL;
            Lex->charset= NULL;
          }
    break;

  case 1177:

/* Line 1455 of yacc.c  */
#line 8208 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_STRING;
            lex->length= lex->dec= 0;
          }
    break;

  case 1178:

/* Line 1455 of yacc.c  */
#line 8214 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_STRING;
            lex->charset= national_charset_info;
            lex->length= lex->dec= 0;
          }
    break;

  case 1179:

/* Line 1455 of yacc.c  */
#line 8221 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_DATE;
            lex->charset= NULL;
            lex->length= lex->dec= 0;
          }
    break;

  case 1180:

/* Line 1455 of yacc.c  */
#line 8228 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_TIME;
            lex->charset= NULL;
            lex->dec= lex->length;
            lex->length= 0;
          }
    break;

  case 1181:

/* Line 1455 of yacc.c  */
#line 8236 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.num)= DYN_COL_DATETIME;
            lex->charset= NULL;
            lex->dec= lex->length;
            lex->length= 0;
          }
    break;

  case 1182:

/* Line 1455 of yacc.c  */
#line 8247 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
     LEX *lex= Lex;
     (yyval.dyncol_def)= (DYNCALL_CREATE_DEF *)
       alloc_root(thd->mem_root, sizeof(DYNCALL_CREATE_DEF));
     if ((yyval.dyncol_def) == NULL)
       MYSQL_YYABORT;
     (yyval.dyncol_def)->num= (yyvsp[(1) - (4)].item);
     (yyval.dyncol_def)->value= (yyvsp[(3) - (4)].item);
     (yyval.dyncol_def)->type= (DYNAMIC_COLUMN_TYPE)(yyvsp[(4) - (4)].num);
     (yyval.dyncol_def)->cs= lex->charset;
     if (lex->length)
       (yyval.dyncol_def)->len= strtoul(lex->length, NULL, 10);
     else
       (yyval.dyncol_def)->len= 0;
     if (lex->dec)
       (yyval.dyncol_def)->frac= strtoul(lex->dec, NULL, 10);
     else
       (yyval.dyncol_def)->len= 0;
   }
    break;

  case 1183:

/* Line 1455 of yacc.c  */
#line 8269 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
         (yyval.dyncol_def_list)= new (thd->mem_root) List<DYNCALL_CREATE_DEF>;
         if ((yyval.dyncol_def_list) == NULL)
           MYSQL_YYABORT;
         (yyval.dyncol_def_list)->push_back((yyvsp[(1) - (1)].dyncol_def));
       }
    break;

  case 1184:

/* Line 1455 of yacc.c  */
#line 8276 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
         (yyvsp[(1) - (3)].dyncol_def_list)->push_back((yyvsp[(3) - (3)].dyncol_def));
         (yyval.dyncol_def_list)= (yyvsp[(1) - (3)].dyncol_def_list);
       }
    break;

  case 1190:

/* Line 1455 of yacc.c  */
#line 8289 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *i1= new (thd->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
                                                      (yyvsp[(3) - (3)].lex_str).length,
                                                      thd->charset());
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1195:

/* Line 1455 of yacc.c  */
#line 8304 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_concat((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1196:

/* Line 1455 of yacc.c  */
#line 8310 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1197:

/* Line 1455 of yacc.c  */
#line 8314 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1198:

/* Line 1455 of yacc.c  */
#line 8320 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_bit_neg((yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1199:

/* Line 1455 of yacc.c  */
#line 8326 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= negate_expression(thd, (yyvsp[(2) - (2)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1200:

/* Line 1455 of yacc.c  */
#line 8332 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            (yyval.item)= new (thd->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1201:

/* Line 1455 of yacc.c  */
#line 8338 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (3)].item); }
    break;

  case 1202:

/* Line 1455 of yacc.c  */
#line 8340 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
            (yyval.item)= new (thd->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1203:

/* Line 1455 of yacc.c  */
#line 8347 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
            (yyval.item)= new (thd->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1204:

/* Line 1455 of yacc.c  */
#line 8354 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1205:

/* Line 1455 of yacc.c  */
#line 8360 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(3) - (4)].item); }
    break;

  case 1206:

/* Line 1455 of yacc.c  */
#line 8362 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(2) - (7)].item_list)->push_front((yyvsp[(5) - (7)].item));
            Item_func_match *i1= new (thd->mem_root) Item_func_match(*(yyvsp[(2) - (7)].item_list), (yyvsp[(6) - (7)].num));
            if (i1 == NULL)
              MYSQL_YYABORT;
            Select->add_ftfunc_to_list(i1);
            (yyval.item)= i1;
          }
    break;

  case 1207:

/* Line 1455 of yacc.c  */
#line 8371 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(thd, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
                                 &my_charset_bin);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1208:

/* Line 1455 of yacc.c  */
#line 8378 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.item)= create_func_cast(thd, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), lex->length, lex->dec,
                                 lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1209:

/* Line 1455 of yacc.c  */
#line 8386 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) );
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1210:

/* Line 1455 of yacc.c  */
#line 8392 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(thd, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex->length, Lex->dec,
                                 Lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1211:

/* Line 1455 of yacc.c  */
#line 8399 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_conv_charset((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].charset));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1212:

/* Line 1455 of yacc.c  */
#line 8405 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if ((yyvsp[(3) - (4)].item)->is_splocal())
            {
              Item_splocal *il= static_cast<Item_splocal *>((yyvsp[(3) - (4)].item));

              my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
              MYSQL_YYABORT;
            }
            (yyval.item)= new (thd->mem_root) Item_default_value(Lex->current_context(),
                                                         (yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1213:

/* Line 1455 of yacc.c  */
#line 8419 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_insert_value(Lex->current_context(),
                                                        (yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1214:

/* Line 1455 of yacc.c  */
#line 8427 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1215:

/* Line 1455 of yacc.c  */
#line 8442 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1216:

/* Line 1455 of yacc.c  */
#line 8448 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_char(*(yyvsp[(3) - (6)].item_list), (yyvsp[(5) - (6)].charset));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1217:

/* Line 1455 of yacc.c  */
#line 8454 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_current_user(Lex->current_context());
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION);
            Lex->safe_to_cache_query= 0;
          }
    break;

  case 1218:

/* Line 1455 of yacc.c  */
#line 8462 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1219:

/* Line 1455 of yacc.c  */
#line 8468 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1220:

/* Line 1455 of yacc.c  */
#line 8474 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_hour((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1221:

/* Line 1455 of yacc.c  */
#line 8480 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_insert((yyvsp[(3) - (10)].item),(yyvsp[(5) - (10)].item),(yyvsp[(7) - (10)].item),(yyvsp[(9) - (10)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1222:

/* Line 1455 of yacc.c  */
#line 8486 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            List<Item> *list= new (thd->mem_root) List<Item>;
            if (list == NULL)
              MYSQL_YYABORT;
            list->push_front((yyvsp[(5) - (6)].item));
            list->push_front((yyvsp[(3) - (6)].item));
            Item_row *item= new (thd->mem_root) Item_row(*list);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_interval(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1223:

/* Line 1455 of yacc.c  */
#line 8500 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
            Item_row *item= new (thd->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_interval(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1224:

/* Line 1455 of yacc.c  */
#line 8511 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1225:

/* Line 1455 of yacc.c  */
#line 8517 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_minute((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1226:

/* Line 1455 of yacc.c  */
#line 8523 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_month((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1227:

/* Line 1455 of yacc.c  */
#line 8529 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1228:

/* Line 1455 of yacc.c  */
#line 8535 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_second((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1229:

/* Line 1455 of yacc.c  */
#line 8541 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_time_typecast((yyvsp[(3) - (4)].item), AUTO_SEC_PART_DIGITS);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1230:

/* Line 1455 of yacc.c  */
#line 8547 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item), AUTO_SEC_PART_DIGITS);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1231:

/* Line 1455 of yacc.c  */
#line 8553 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_add_time((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item), 1, 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1232:

/* Line 1455 of yacc.c  */
#line 8559 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1233:

/* Line 1455 of yacc.c  */
#line 8565 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1234:

/* Line 1455 of yacc.c  */
#line 8571 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1235:

/* Line 1455 of yacc.c  */
#line 8577 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1236:

/* Line 1455 of yacc.c  */
#line 8583 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1237:

/* Line 1455 of yacc.c  */
#line 8589 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1238:

/* Line 1455 of yacc.c  */
#line 8595 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1239:

/* Line 1455 of yacc.c  */
#line 8601 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1240:

/* Line 1455 of yacc.c  */
#line 8607 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_user();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION);
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1241:

/* Line 1455 of yacc.c  */
#line 8615 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_year((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1242:

/* Line 1455 of yacc.c  */
#line 8636 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1243:

/* Line 1455 of yacc.c  */
#line 8643 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1244:

/* Line 1455 of yacc.c  */
#line 8649 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_curdate_local();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1245:

/* Line 1455 of yacc.c  */
#line 8656 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_curtime_local((yyvsp[(2) - (2)].num));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1246:

/* Line 1455 of yacc.c  */
#line 8664 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1247:

/* Line 1455 of yacc.c  */
#line 8671 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1248:

/* Line 1455 of yacc.c  */
#line 8677 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)=new (thd->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1249:

/* Line 1455 of yacc.c  */
#line 8683 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_get_format((yyvsp[(3) - (6)].date_time_type), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1250:

/* Line 1455 of yacc.c  */
#line 8689 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_now_local((yyvsp[(2) - (2)].num));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1251:

/* Line 1455 of yacc.c  */
#line 8696 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item) = new (thd->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1252:

/* Line 1455 of yacc.c  */
#line 8702 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1253:

/* Line 1455 of yacc.c  */
#line 8709 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1254:

/* Line 1455 of yacc.c  */
#line 8715 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1255:

/* Line 1455 of yacc.c  */
#line 8721 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1256:

/* Line 1455 of yacc.c  */
#line 8727 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1257:

/* Line 1455 of yacc.c  */
#line 8733 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1258:

/* Line 1455 of yacc.c  */
#line 8739 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Unlike other time-related functions, SYSDATE() is
              replication-unsafe because it is not affected by the
              TIMESTAMP variable.  It is unsafe even if
              sysdate_is_now=1, because the slave may have
              sysdate_is_now=0.
            */
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION);
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (thd->mem_root) Item_func_sysdate_local((yyvsp[(2) - (2)].num));
            else
              (yyval.item)= new (thd->mem_root) Item_func_now_local((yyvsp[(2) - (2)].num));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1259:

/* Line 1455 of yacc.c  */
#line 8757 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1260:

/* Line 1455 of yacc.c  */
#line 8763 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1261:

/* Line 1455 of yacc.c  */
#line 8769 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_curdate_utc();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1262:

/* Line 1455 of yacc.c  */
#line 8776 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_curtime_utc((yyvsp[(2) - (2)].num));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1263:

/* Line 1455 of yacc.c  */
#line 8783 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_now_utc((yyvsp[(2) - (2)].num));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1264:

/* Line 1455 of yacc.c  */
#line 8791 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= create_func_dyncol_add(thd, (yyvsp[(3) - (6)].item), *(yyvsp[(5) - (6)].dyncol_def_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1265:

/* Line 1455 of yacc.c  */
#line 8798 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= create_func_dyncol_delete(thd, (yyvsp[(3) - (6)].item), *(yyvsp[(5) - (6)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1266:

/* Line 1455 of yacc.c  */
#line 8805 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_dyncol_exists((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1267:

/* Line 1455 of yacc.c  */
#line 8812 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_dyncol_list((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1268:

/* Line 1455 of yacc.c  */
#line 8819 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= create_func_dyncol_create(thd, *(yyvsp[(3) - (4)].dyncol_def_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1269:

/* Line 1455 of yacc.c  */
#line 8826 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.item)= create_func_dyncol_get(thd, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].cast_type),
                                        lex->length, lex->dec,
                                        lex->charset);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1270:

/* Line 1455 of yacc.c  */
#line 8843 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_ascii((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1271:

/* Line 1455 of yacc.c  */
#line 8849 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_charset((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1272:

/* Line 1455 of yacc.c  */
#line 8855 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1273:

/* Line 1455 of yacc.c  */
#line 8861 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_collation((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1274:

/* Line 1455 of yacc.c  */
#line 8867 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_database();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1275:

/* Line 1455 of yacc.c  */
#line 8874 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1276:

/* Line 1455 of yacc.c  */
#line 8880 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_last_value(* (yyvsp[(3) - (4)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1277:

/* Line 1455 of yacc.c  */
#line 8886 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1278:

/* Line 1455 of yacc.c  */
#line 8892 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item) = new (thd->mem_root) Item_func_mod((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1279:

/* Line 1455 of yacc.c  */
#line 8898 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)=  new (thd->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1280:

/* Line 1455 of yacc.c  */
#line 8904 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item* i1;
            if (thd->variables.old_passwords)
              i1= new (thd->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            else
              i1= new (thd->mem_root) Item_func_password((yyvsp[(3) - (4)].item));
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= i1;
          }
    break;

  case 1281:

/* Line 1455 of yacc.c  */
#line 8915 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item) = new (thd->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1282:

/* Line 1455 of yacc.c  */
#line 8921 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_repeat((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1283:

/* Line 1455 of yacc.c  */
#line 8927 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_replace((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1284:

/* Line 1455 of yacc.c  */
#line 8933 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1285:

/* Line 1455 of yacc.c  */
#line 8939 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *i1= new (thd->mem_root) Item_int((char*) "0",
                                           thd->variables.default_week_format,
                                                   1);
            if (i1 == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[(3) - (4)].item), i1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1286:

/* Line 1455 of yacc.c  */
#line 8950 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1287:

/* Line 1455 of yacc.c  */
#line 8956 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.item)= (yyvsp[(1) - (1)].item);
            /* $1 may be NULL, GEOM_NEW not tested for out of memory */
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 1288:

/* Line 1455 of yacc.c  */
#line 8972 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_rel((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                               Item_func::SP_CONTAINS_FUNC));
          }
    break;

  case 1289:

/* Line 1455 of yacc.c  */
#line 8978 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_geometrycollection,
                           Geometry::wkb_point));
          }
    break;

  case 1290:

/* Line 1455 of yacc.c  */
#line 8985 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_linestring,
                           Geometry::wkb_point));
          }
    break;

  case 1291:

/* Line 1455 of yacc.c  */
#line 8992 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multilinestring,
                           Geometry::wkb_linestring));
          }
    break;

  case 1292:

/* Line 1455 of yacc.c  */
#line 8999 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipoint,
                           Geometry::wkb_point));
          }
    break;

  case 1293:

/* Line 1455 of yacc.c  */
#line 9006 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipolygon,
                           Geometry::wkb_polygon));
          }
    break;

  case 1294:

/* Line 1455 of yacc.c  */
#line 9013 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd, Item_func_point((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)));
          }
    break;

  case 1295:

/* Line 1455 of yacc.c  */
#line 9017 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(thd,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_polygon,
                           Geometry::wkb_linestring));
          }
    break;

  case 1296:

/* Line 1455 of yacc.c  */
#line 9036 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
#ifdef HAVE_DLOPEN
            udf_func *udf= 0;
            LEX *lex= Lex;
            if (using_udf_functions &&
                (udf= find_udf((yyvsp[(1) - (2)].lex_str).str, (yyvsp[(1) - (2)].lex_str).length)) &&
                udf->type == UDFTYPE_AGGREGATE)
            {
              if (lex->current_select->inc_in_sum_expr())
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
            }
            /* Temporary placing the result of find_udf in $3 */
            (yyval.udf)= udf;
#endif
          }
    break;

  case 1297:

/* Line 1455 of yacc.c  */
#line 9055 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Create_func *builder;
            Item *item= NULL;

            if (check_routine_name(&(yyvsp[(1) - (5)].lex_str)))
            {
              MYSQL_YYABORT;
            }

            /*
              Implementation note:
              names are resolved with the following order:
              - MySQL native functions,
              - User Defined Functions,
              - Stored Functions (assuming the current <use> database)

              This will be revised with WL#2128 (SQL PATH)
            */
            builder= find_native_function_builder(thd, (yyvsp[(1) - (5)].lex_str));
            if (builder)
            {
              item= builder->create_func(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
            }
            else
            {
#ifdef HAVE_DLOPEN
              /* Retrieving the result of find_udf */
              udf_func *udf= (yyvsp[(3) - (5)].udf);

              if (udf)
              {
                if (udf->type == UDFTYPE_AGGREGATE)
                {
                  Select->in_sum_expr--;
                }

                item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[(4) - (5)].item_list));
              }
              else
#endif
              {
                builder= find_qualified_function_builder(thd);
                DBUG_ASSERT(builder);
                item= builder->create_func(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
              }
            }

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1298:

/* Line 1455 of yacc.c  */
#line 9108 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Create_qfunc *builder;
            Item *item= NULL;

            /*
              The following in practice calls:
              <code>Create_sp_func::create()</code>
              and builds a stored function.

              However, it's important to maintain the interface between the
              parser and the implementation in item_create.cc clean,
              since this will change with WL#2128 (SQL PATH):
              - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
              function version(),
              - MySQL.version() is the SQL 2003 syntax for the native function
              version() (a vendor can specify any schema).
            */

            if (!(yyvsp[(1) - (6)].lex_str).str || check_db_name(&(yyvsp[(1) - (6)].lex_str)))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (6)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (check_routine_name(&(yyvsp[(3) - (6)].lex_str)))
            {
              MYSQL_YYABORT;
            }

            builder= find_qualified_function_builder(thd);
            DBUG_ASSERT(builder);
            item= builder->create_with_db(thd, (yyvsp[(1) - (6)].lex_str), (yyvsp[(3) - (6)].lex_str), true, (yyvsp[(5) - (6)].item_list));

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1299:

/* Line 1455 of yacc.c  */
#line 9149 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 1300:

/* Line 1455 of yacc.c  */
#line 9151 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= FT_BOOL; }
    break;

  case 1301:

/* Line 1455 of yacc.c  */
#line 9155 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1302:

/* Line 1455 of yacc.c  */
#line 9156 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1303:

/* Line 1455 of yacc.c  */
#line 9160 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0;         }
    break;

  case 1304:

/* Line 1455 of yacc.c  */
#line 9161 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= FT_EXPAND; }
    break;

  case 1305:

/* Line 1455 of yacc.c  */
#line 9165 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1306:

/* Line 1455 of yacc.c  */
#line 9166 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1307:

/* Line 1455 of yacc.c  */
#line 9171 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_list)= new (thd->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1308:

/* Line 1455 of yacc.c  */
#line 9178 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1309:

/* Line 1455 of yacc.c  */
#line 9186 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
             Use Item::name as a storage for the attribute value of user
             defined function argument. It is safe to use Item::name
             because the syntax will not allow having an explicit name here.
             See WL#1017 re. udf attributes.
            */
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            /* 
               A field has to have its proper name in order for name
               resolution to work, something we are only guaranteed if we
               parse it out. If we hijack the input stream with
               remember_name we may get quoted or escaped names.
            */
            else if ((yyvsp[(2) - (4)].item)->type() != Item::FIELD_ITEM)
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), thd->charset());
            (yyval.item)= (yyvsp[(2) - (4)].item);
          }
    break;

  case 1310:

/* Line 1455 of yacc.c  */
#line 9212 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_avg((yyvsp[(3) - (4)].item), FALSE);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1311:

/* Line 1455 of yacc.c  */
#line 9218 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_avg((yyvsp[(4) - (5)].item), TRUE);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1312:

/* Line 1455 of yacc.c  */
#line 9224 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_and((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1313:

/* Line 1455 of yacc.c  */
#line 9230 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_or((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1314:

/* Line 1455 of yacc.c  */
#line 9236 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_xor((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1315:

/* Line 1455 of yacc.c  */
#line 9242 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *item= new (thd->mem_root) Item_int((int32) 0L,1);
            if (item == NULL)
              MYSQL_YYABORT;
            (yyval.item)= new (thd->mem_root) Item_sum_count(item);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1316:

/* Line 1455 of yacc.c  */
#line 9251 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_count((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1317:

/* Line 1455 of yacc.c  */
#line 9257 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1318:

/* Line 1455 of yacc.c  */
#line 9259 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->in_sum_expr--; }
    break;

  case 1319:

/* Line 1455 of yacc.c  */
#line 9261 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_count(* (yyvsp[(5) - (7)].item_list));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1320:

/* Line 1455 of yacc.c  */
#line 9267 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_min((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1321:

/* Line 1455 of yacc.c  */
#line 9278 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_min((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1322:

/* Line 1455 of yacc.c  */
#line 9284 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_max((yyvsp[(3) - (4)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1323:

/* Line 1455 of yacc.c  */
#line 9290 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_max((yyvsp[(4) - (5)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1324:

/* Line 1455 of yacc.c  */
#line 9296 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1325:

/* Line 1455 of yacc.c  */
#line 9302 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 0);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1326:

/* Line 1455 of yacc.c  */
#line 9308 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1327:

/* Line 1455 of yacc.c  */
#line 9314 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1328:

/* Line 1455 of yacc.c  */
#line 9320 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_sum((yyvsp[(3) - (4)].item), FALSE);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1329:

/* Line 1455 of yacc.c  */
#line 9326 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_sum_sum((yyvsp[(4) - (5)].item), TRUE);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1330:

/* Line 1455 of yacc.c  */
#line 9332 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1331:

/* Line 1455 of yacc.c  */
#line 9336 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->in_sum_expr--;
            (yyval.item)= new (thd->mem_root)
                  Item_func_group_concat(Lex->current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
                                         sel->gorder_list, (yyvsp[(7) - (8)].string));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            (yyvsp[(5) - (8)].item_list)->empty();
            sel->gorder_list.empty();
          }
    break;

  case 1332:

/* Line 1455 of yacc.c  */
#line 9351 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1333:

/* Line 1455 of yacc.c  */
#line 9359 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1334:

/* Line 1455 of yacc.c  */
#line 9366 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item_func_set_user_var *item;
            (yyval.item)= item= new (thd->mem_root) Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
            lex->set_var_list.push_back(item);
          }
    break;

  case 1335:

/* Line 1455 of yacc.c  */
#line 9376 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_func_get_user_var((yyvsp[(1) - (1)].lex_str));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1336:

/* Line 1455 of yacc.c  */
#line 9384 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* disallow "SELECT @@global.global.variable" */
            if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (!((yyval.item)= get_system_var(thd, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
              MYSQL_YYABORT;
            if (!((Item_func_get_system_var*) (yyval.item))->is_written_to_binlog())
              Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_SYSTEM_VARIABLE);
          }
    break;

  case 1337:

/* Line 1455 of yacc.c  */
#line 9399 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1338:

/* Line 1455 of yacc.c  */
#line 9400 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1339:

/* Line 1455 of yacc.c  */
#line 9405 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.string)= new (thd->mem_root) String(",", 1, &my_charset_latin1);
            if ((yyval.string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1340:

/* Line 1455 of yacc.c  */
#line 9410 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.string) = (yyvsp[(2) - (2)].string); }
    break;

  case 1342:

/* Line 1455 of yacc.c  */
#line 9416 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                (sel->linkage != UNION_TYPE || sel->braces))
            {
              my_error(ER_WRONG_USAGE, MYF(0),
                       "CUBE/ROLLUP", "ORDER BY");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1344:

/* Line 1455 of yacc.c  */
#line 9433 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { if (add_gorder_to_list(thd, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1345:

/* Line 1455 of yacc.c  */
#line 9435 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { if (add_gorder_to_list(thd, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1346:

/* Line 1455 of yacc.c  */
#line 9440 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->inc_in_sum_expr())
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1347:

/* Line 1455 of yacc.c  */
#line 9449 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->in_sum_expr--;
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1348:

/* Line 1455 of yacc.c  */
#line 9457 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
    break;

  case 1349:

/* Line 1455 of yacc.c  */
#line 9459 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; }
    break;

  case 1350:

/* Line 1455 of yacc.c  */
#line 9461 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
    break;

  case 1351:

/* Line 1455 of yacc.c  */
#line 9463 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1352:

/* Line 1455 of yacc.c  */
#line 9465 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1353:

/* Line 1455 of yacc.c  */
#line 9467 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1354:

/* Line 1455 of yacc.c  */
#line 9469 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1355:

/* Line 1455 of yacc.c  */
#line 9471 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1356:

/* Line 1455 of yacc.c  */
#line 9473 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1357:

/* Line 1455 of yacc.c  */
#line 9475 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.cast_type)=ITEM_CAST_TIME;
            LEX *lex= Lex;
            lex->charset= NULL; lex->dec= lex->length; lex->length= (char*)0;
           }
    break;

  case 1358:

/* Line 1455 of yacc.c  */
#line 9481 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.cast_type)=ITEM_CAST_DATETIME;
            LEX *lex= Lex;
            lex->charset= NULL; lex->dec= lex->length; lex->length= (char*)0;
           }
    break;

  case 1359:

/* Line 1455 of yacc.c  */
#line 9487 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
    break;

  case 1360:

/* Line 1455 of yacc.c  */
#line 9489 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->charset= NULL; Lex->length= Lex->dec= 0;}
    break;

  case 1361:

/* Line 1455 of yacc.c  */
#line 9491 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DOUBLE; }
    break;

  case 1362:

/* Line 1455 of yacc.c  */
#line 9494 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1363:

/* Line 1455 of yacc.c  */
#line 9495 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list);}
    break;

  case 1364:

/* Line 1455 of yacc.c  */
#line 9500 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_list)= new (thd->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1365:

/* Line 1455 of yacc.c  */
#line 9507 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1366:

/* Line 1455 of yacc.c  */
#line 9514 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1367:

/* Line 1455 of yacc.c  */
#line 9515 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(2) - (3)].item_list); }
    break;

  case 1368:

/* Line 1455 of yacc.c  */
#line 9520 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_list)= new (thd->mem_root) List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 1369:

/* Line 1455 of yacc.c  */
#line 9527 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
            (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
          }
    break;

  case 1370:

/* Line 1455 of yacc.c  */
#line 9534 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1371:

/* Line 1455 of yacc.c  */
#line 9535 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1372:

/* Line 1455 of yacc.c  */
#line 9539 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1373:

/* Line 1455 of yacc.c  */
#line 9540 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (2)].item); }
    break;

  case 1374:

/* Line 1455 of yacc.c  */
#line 9545 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_list)= new List<Item>;
            if ((yyval.item_list) == NULL)
              MYSQL_YYABORT;
            (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
            (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
          }
    break;

  case 1375:

/* Line 1455 of yacc.c  */
#line 9553 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
            (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
          }
    break;

  case 1376:

/* Line 1455 of yacc.c  */
#line 9563 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1377:

/* Line 1455 of yacc.c  */
#line 9565 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1378:

/* Line 1455 of yacc.c  */
#line 9576 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
    break;

  case 1379:

/* Line 1455 of yacc.c  */
#line 9587 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1380:

/* Line 1455 of yacc.c  */
#line 9588 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
    break;

  case 1381:

/* Line 1455 of yacc.c  */
#line 9594 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1382:

/* Line 1455 of yacc.c  */
#line 9596 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
          }
    break;

  case 1383:

/* Line 1455 of yacc.c  */
#line 9616 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); }
    break;

  case 1384:

/* Line 1455 of yacc.c  */
#line 9618 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1; }
    break;

  case 1385:

/* Line 1455 of yacc.c  */
#line 9621 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(thd, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1386:

/* Line 1455 of yacc.c  */
#line 9629 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1387:

/* Line 1455 of yacc.c  */
#line 9636 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(thd, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1388:

/* Line 1455 of yacc.c  */
#line 9644 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(3) - (6)].table_list)->straight=1;
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1389:

/* Line 1455 of yacc.c  */
#line 9652 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
          }
    break;

  case 1390:

/* Line 1455 of yacc.c  */
#line 9656 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
    break;

  case 1391:

/* Line 1455 of yacc.c  */
#line 9658 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
            add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Select);
          }
    break;

  case 1392:

/* Line 1455 of yacc.c  */
#line 9666 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(thd, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1393:

/* Line 1455 of yacc.c  */
#line 9674 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
            Lex->pop_context();
            (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1394:

/* Line 1455 of yacc.c  */
#line 9682 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1395:

/* Line 1455 of yacc.c  */
#line 9686 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select); 
            (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT; 
            (yyval.table_list)=(yyvsp[(5) - (10)].table_list); 
          }
    break;

  case 1396:

/* Line 1455 of yacc.c  */
#line 9692 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Select);
            (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
          }
    break;

  case 1397:

/* Line 1455 of yacc.c  */
#line 9702 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(thd, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1398:

/* Line 1455 of yacc.c  */
#line 9710 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1399:

/* Line 1455 of yacc.c  */
#line 9719 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1400:

/* Line 1455 of yacc.c  */
#line 9723 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select);
          }
    break;

  case 1401:

/* Line 1455 of yacc.c  */
#line 9730 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Select);
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
          }
    break;

  case 1402:

/* Line 1455 of yacc.c  */
#line 9740 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1403:

/* Line 1455 of yacc.c  */
#line 9741 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1404:

/* Line 1455 of yacc.c  */
#line 9742 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1405:

/* Line 1455 of yacc.c  */
#line 9754 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->table_join_options= 0;
          }
    break;

  case 1406:

/* Line 1455 of yacc.c  */
#line 9759 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
                                                Select->get_table_join_options(),
                                                YYPS->m_lock_type,
                                                YYPS->m_mdl_type,
                                                Select->pop_index_hints())))
              MYSQL_YYABORT;
            Select->add_joined_table((yyval.table_list));
          }
    break;

  case 1407:

/* Line 1455 of yacc.c  */
#line 9769 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if ((yyvsp[(1) - (3)].num))
            {
              if (sel->set_braces(1))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              /* select in braces, can't contain global parameters */
              if (sel->master_unit()->fake_select_lex)
                sel->master_unit()->global_parameters=
                   sel->master_unit()->fake_select_lex;
            }
            if ((yyvsp[(2) - (3)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
            (yyval.table_list)= 0;
            /* incomplete derived tables return NULL, we must be
               nested in select_derived rule to be here. */
          }
    break;

  case 1408:

/* Line 1455 of yacc.c  */
#line 9809 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* Use $2 instead of Lex->current_select as derived table will
               alter value of Lex->current_select. */
            if (!((yyvsp[(3) - (5)].table_list) || (yyvsp[(5) - (5)].lex_str_ptr)) && (yyvsp[(2) - (5)].select_lex)->embedding &&
                !(yyvsp[(2) - (5)].select_lex)->embedding->nested_join->join_list.elements)
            {
              /* we have a derived table ($3 == NULL) but no alias,
                 Since we are nested in further parentheses so we
                 can pass NULL to the outer level parentheses
                 Permits parsing of "((((select ...))) as xyz)" */
              (yyval.table_list)= 0;
            }
            else if (!(yyvsp[(3) - (5)].table_list))
            {
              /* Handle case of derived table, alias may be NULL if there
                 are no outer parentheses, add_table_to_list() will throw
                 error in this case */
              LEX *lex=Lex;
              SELECT_LEX *sel= lex->current_select;
              SELECT_LEX_UNIT *unit= sel->master_unit();
              lex->current_select= sel= unit->outer_select();
              Table_ident *ti= new Table_ident(unit);
              if (ti == NULL)
                MYSQL_YYABORT;
              if (!((yyval.table_list)= sel->add_table_to_list(lex->thd,
                                               new Table_ident(unit), (yyvsp[(5) - (5)].lex_str_ptr), 0,
                                               TL_READ, MDL_SHARED_READ)))

                MYSQL_YYABORT;
              sel->add_joined_table((yyval.table_list));
              lex->pop_context();
              lex->nest_level--;
            }
            /*else if (($3->select_lex &&
                      $3->select_lex->master_unit()->is_union() &&
                      ($3->select_lex->master_unit()->first_select() ==
                       $3->select_lex || !$3->lifted)) || $5)*/
            else if ((yyvsp[(5) - (5)].lex_str_ptr) != NULL)
            {
              /*
                Tables with or without joins within parentheses cannot
                have aliases, and we ruled out derived tables above.
              */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            else
            {
              /* nested join: FROM (t1 JOIN t2 ...),
                 nest_level is the same as in the outer query */
              (yyval.table_list)= (yyvsp[(3) - (5)].table_list);
            }
          }
    break;

  case 1409:

/* Line 1455 of yacc.c  */
#line 9885 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if ((yyvsp[(1) - (2)].table_list) && (yyvsp[(2) - (2)].is_not_empty))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1410:

/* Line 1455 of yacc.c  */
#line 9895 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_select_to_union_list(Lex, (bool)(yyvsp[(3) - (3)].num), FALSE))
              MYSQL_YYABORT;
          }
    break;

  case 1411:

/* Line 1455 of yacc.c  */
#line 9900 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Remove from the name resolution context stack the context of the
              last select in the union.
             */
            Lex->pop_context();
          }
    break;

  case 1412:

/* Line 1455 of yacc.c  */
#line 9908 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if ((yyvsp[(1) - (7)].table_list) != NULL)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1413:

/* Line 1455 of yacc.c  */
#line 9920 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (lex->current_select->set_braces(0))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->master_unit()->first_select()->braces)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1414:

/* Line 1455 of yacc.c  */
#line 9939 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != UNION_TYPE)
              mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 1415:

/* Line 1455 of yacc.c  */
#line 9947 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1417:

/* Line 1455 of yacc.c  */
#line 9956 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
          }
    break;

  case 1418:

/* Line 1455 of yacc.c  */
#line 9962 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            /* for normal joins, $3 != NULL and end_nested_join() != NULL,
               for derived tables, both must equal NULL */

            if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join(lex->thd)) && (yyvsp[(3) - (3)].table_list))
              MYSQL_YYABORT;
            if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1419:

/* Line 1455 of yacc.c  */
#line 9978 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->derived_tables|= DERIVED_SUBQUERY;
            if (!lex->expr_allows_subselect ||
                lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
                mysql_new_select(lex, 1))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage= DERIVED_TABLE_TYPE;
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 1420:

/* Line 1455 of yacc.c  */
#line 9995 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1422:

/* Line 1455 of yacc.c  */
#line 10002 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.select_lex)= Select; }
    break;

  case 1423:

/* Line 1455 of yacc.c  */
#line 10007 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (! lex->parsing_options.allows_derived)
            {
              my_error(ER_VIEW_SELECT_DERIVED, MYF(0));
              MYSQL_YYABORT;
            }

            SELECT_LEX *sel= lex->current_select;
            TABLE_LIST *embedding;
            if (!sel->embedding || sel->end_nested_join(lex->thd))
            {
              /* we are not in parentheses */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            embedding= Select->embedding;
            (yyval.num)= embedding &&
                !embedding->nested_join->join_list.elements;
            /* return true if we are deeply nested */
          }
    break;

  case 1424:

/* Line 1455 of yacc.c  */
#line 10032 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1425:

/* Line 1455 of yacc.c  */
#line 10033 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1426:

/* Line 1455 of yacc.c  */
#line 10038 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= thd->variables.old_mode ?  INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; 
          }
    break;

  case 1427:

/* Line 1455 of yacc.c  */
#line 10041 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
    break;

  case 1428:

/* Line 1455 of yacc.c  */
#line 10042 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_ORDER; }
    break;

  case 1429:

/* Line 1455 of yacc.c  */
#line 10043 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_GROUP; }
    break;

  case 1430:

/* Line 1455 of yacc.c  */
#line 10047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_FORCE; }
    break;

  case 1431:

/* Line 1455 of yacc.c  */
#line 10048 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_IGNORE; }
    break;

  case 1432:

/* Line 1455 of yacc.c  */
#line 10053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
          }
    break;

  case 1434:

/* Line 1455 of yacc.c  */
#line 10058 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
          }
    break;

  case 1439:

/* Line 1455 of yacc.c  */
#line 10071 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->alloc_index_hints(thd); }
    break;

  case 1441:

/* Line 1455 of yacc.c  */
#line 10075 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {  Select->clear_index_hints(); }
    break;

  case 1443:

/* Line 1455 of yacc.c  */
#line 10080 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->add_index_hint(thd, NULL, 0); }
    break;

  case 1444:

/* Line 1455 of yacc.c  */
#line 10081 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1445:

/* Line 1455 of yacc.c  */
#line 10086 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->add_index_hint(thd, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1446:

/* Line 1455 of yacc.c  */
#line 10088 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->add_index_hint(thd, (char *)"PRIMARY", 7); }
    break;

  case 1449:

/* Line 1455 of yacc.c  */
#line 10098 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.string_list)= new List<String>))
              MYSQL_YYABORT;
            String *s= new (thd->mem_root) String((const char *) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
            if (s == NULL)
              MYSQL_YYABORT;
            (yyval.string_list)->push_back(s);
          }
    break;

  case 1450:

/* Line 1455 of yacc.c  */
#line 10109 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            String *s= new (thd->mem_root) String((const char *) (yyvsp[(3) - (3)].lex_str).str,
                                                    (yyvsp[(3) - (3)].lex_str).length,
                                                    system_charset_info);
            if (s == NULL)
              MYSQL_YYABORT;
            (yyvsp[(1) - (3)].string_list)->push_back(s);
            (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
          }
    break;

  case 1451:

/* Line 1455 of yacc.c  */
#line 10121 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1452:

/* Line 1455 of yacc.c  */
#line 10122 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_HOUR; }
    break;

  case 1453:

/* Line 1455 of yacc.c  */
#line 10123 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
    break;

  case 1454:

/* Line 1455 of yacc.c  */
#line 10124 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MINUTE; }
    break;

  case 1455:

/* Line 1455 of yacc.c  */
#line 10125 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_SECOND; }
    break;

  case 1456:

/* Line 1455 of yacc.c  */
#line 10126 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
    break;

  case 1457:

/* Line 1455 of yacc.c  */
#line 10127 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
    break;

  case 1458:

/* Line 1455 of yacc.c  */
#line 10128 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_SECOND; }
    break;

  case 1459:

/* Line 1455 of yacc.c  */
#line 10129 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
    break;

  case 1460:

/* Line 1455 of yacc.c  */
#line 10130 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
    break;

  case 1461:

/* Line 1455 of yacc.c  */
#line 10131 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
    break;

  case 1462:

/* Line 1455 of yacc.c  */
#line 10132 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval)=INTERVAL_YEAR_MONTH; }
    break;

  case 1463:

/* Line 1455 of yacc.c  */
#line 10136 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_DAY; }
    break;

  case 1464:

/* Line 1455 of yacc.c  */
#line 10137 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_WEEK; }
    break;

  case 1465:

/* Line 1455 of yacc.c  */
#line 10138 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_HOUR; }
    break;

  case 1466:

/* Line 1455 of yacc.c  */
#line 10139 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MINUTE; }
    break;

  case 1467:

/* Line 1455 of yacc.c  */
#line 10140 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MONTH; }
    break;

  case 1468:

/* Line 1455 of yacc.c  */
#line 10141 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_QUARTER; }
    break;

  case 1469:

/* Line 1455 of yacc.c  */
#line 10142 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_SECOND; }
    break;

  case 1470:

/* Line 1455 of yacc.c  */
#line 10143 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
    break;

  case 1471:

/* Line 1455 of yacc.c  */
#line 10144 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_YEAR; }
    break;

  case 1472:

/* Line 1455 of yacc.c  */
#line 10148 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;}
    break;

  case 1473:

/* Line 1455 of yacc.c  */
#line 10149 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;}
    break;

  case 1474:

/* Line 1455 of yacc.c  */
#line 10150 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1475:

/* Line 1455 of yacc.c  */
#line 10151 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1479:

/* Line 1455 of yacc.c  */
#line 10161 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str_ptr)=0; }
    break;

  case 1480:

/* Line 1455 of yacc.c  */
#line 10163 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(LEX_STRING));
            if ((yyval.lex_str_ptr) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1483:

/* Line 1455 of yacc.c  */
#line 10176 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->where= 0; }
    break;

  case 1484:

/* Line 1455 of yacc.c  */
#line 10178 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= IN_WHERE;
          }
    break;

  case 1485:

/* Line 1455 of yacc.c  */
#line 10182 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->where= normalize_cond((yyvsp[(3) - (3)].item));
            select->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1487:

/* Line 1455 of yacc.c  */
#line 10194 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= IN_HAVING;
          }
    break;

  case 1488:

/* Line 1455 of yacc.c  */
#line 10198 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->having= normalize_cond((yyvsp[(3) - (3)].item));
            sel->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1489:

/* Line 1455 of yacc.c  */
#line 10209 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->escape_used= TRUE;
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1490:

/* Line 1455 of yacc.c  */
#line 10214 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->escape_used= FALSE;
            (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
                 new (thd->mem_root) Item_string("", 0, &my_charset_latin1) :
                 new (thd->mem_root) Item_string("\\", 1, &my_charset_latin1));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1493:

/* Line 1455 of yacc.c  */
#line 10235 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { if (add_group_to_list(thd, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1494:

/* Line 1455 of yacc.c  */
#line 10237 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { if (add_group_to_list(thd, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1495:

/* Line 1455 of yacc.c  */
#line 10241 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1496:

/* Line 1455 of yacc.c  */
#line 10243 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              'WITH CUBE' is reserved in the MySQL syntax, but not implemented,
              and cause LALR(2) conflicts.
              This syntax is not standard.
              MySQL syntax: GROUP BY col1, col2, col3 WITH CUBE
              SQL-2003: GROUP BY ... CUBE(col1, col2, col3)
            */
            LEX *lex=Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= CUBE_TYPE;
            my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
            MYSQL_YYABORT;
          }
    break;

  case 1497:

/* Line 1455 of yacc.c  */
#line 10263 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              'WITH ROLLUP' is needed for backward compatibility,
              and cause LALR(2) conflicts.
              This syntax is not standard.
              MySQL syntax: GROUP BY col1, col2, col3 WITH ROLLUP
              SQL-2003: GROUP BY ... ROLLUP(col1, col2, col3)
            */
            LEX *lex= Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= ROLLUP_TYPE;
          }
    break;

  case 1501:

/* Line 1455 of yacc.c  */
#line 10297 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
            if (add_order_to_list(thd, (yyvsp[(1) - (2)].item), ascending))
              MYSQL_YYABORT;
          }
    break;

  case 1504:

/* Line 1455 of yacc.c  */
#line 10315 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel-> master_unit();
            if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE &&
                (sel->linkage != UNION_TYPE || sel->braces))
            {
              my_error(ER_WRONG_USAGE, MYF(0),
                       "CUBE/ROLLUP", "ORDER BY");
              MYSQL_YYABORT;
            }
            if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
            {
              /*
                A query of the of the form (SELECT ...) ORDER BY order_list is
                executed in the same way as the query
                SELECT ... ORDER BY order_list
                unless the SELECT construct contains ORDER BY or LIMIT clauses.
                Otherwise we create a fake SELECT_LEX if it has not been created
                yet.
              */
              SELECT_LEX *first_sl= unit->first_select();
              if (!unit->is_union() &&
                  (first_sl->order_list.elements || 
                   first_sl->select_limit) &&            
                  unit->add_fake_select_lex(lex->thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1506:

/* Line 1455 of yacc.c  */
#line 10350 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { if (add_order_to_list(thd, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1507:

/* Line 1455 of yacc.c  */
#line 10352 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { if (add_order_to_list(thd, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1508:

/* Line 1455 of yacc.c  */
#line 10356 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) =  1; }
    break;

  case 1509:

/* Line 1455 of yacc.c  */
#line 10357 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) =1; }
    break;

  case 1510:

/* Line 1455 of yacc.c  */
#line 10358 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num) =0; }
    break;

  case 1511:

/* Line 1455 of yacc.c  */
#line 10363 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            sel->offset_limit= 0;
            sel->select_limit= 0;
	    lex->limit_rows_examined= 0;
          }
    break;

  case 1512:

/* Line 1455 of yacc.c  */
#line 10370 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1513:

/* Line 1455 of yacc.c  */
#line 10374 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1514:

/* Line 1455 of yacc.c  */
#line 10375 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1515:

/* Line 1455 of yacc.c  */
#line 10380 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
          }
    break;

  case 1516:

/* Line 1455 of yacc.c  */
#line 10384 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
          }
    break;

  case 1517:

/* Line 1455 of yacc.c  */
#line 10388 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
          }
    break;

  case 1518:

/* Line 1455 of yacc.c  */
#line 10395 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (1)].item);
            sel->offset_limit= 0;
            sel->explicit_limit= 1;
          }
    break;

  case 1519:

/* Line 1455 of yacc.c  */
#line 10402 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(3) - (3)].item);
            sel->offset_limit= (yyvsp[(1) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1520:

/* Line 1455 of yacc.c  */
#line 10409 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (3)].item);
            sel->offset_limit= (yyvsp[(3) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1521:

/* Line 1455 of yacc.c  */
#line 10419 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          Item_splocal *splocal;
          LEX *lex= thd->lex;
          Lex_input_stream *lip= & thd->m_parser_state->m_lip;
          sp_variable_t *spv;
          sp_pcontext *spc = lex->spcont;
          if (spc && (spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
          {
            splocal= new (thd->mem_root)
              Item_splocal((yyvsp[(1) - (1)].lex_str), spv->offset, spv->type,
                  lip->get_tok_start() - lex->sphead->m_tmp_query,
                  lip->get_ptr() - lip->get_tok_start());
            if (splocal == NULL)
              MYSQL_YYABORT;
#ifndef DBUG_OFF
            splocal->m_sp= lex->sphead;
#endif
            lex->safe_to_cache_query=0;
          }
          else
          {
            my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
            MYSQL_YYABORT;
          }
          if (splocal->type() != Item::INT_ITEM)
          {
            my_error(ER_WRONG_SPVAR_TYPE_IN_LIMIT, MYF(0));
            MYSQL_YYABORT;
          }
          splocal->limit_clause_param= TRUE;
          (yyval.item)= splocal;
        }
    break;

  case 1522:

/* Line 1455 of yacc.c  */
#line 10452 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          ((Item_param *) (yyvsp[(1) - (1)].item))->limit_clause_param= TRUE;
        }
    break;

  case 1523:

/* Line 1455 of yacc.c  */
#line 10456 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1524:

/* Line 1455 of yacc.c  */
#line 10462 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1525:

/* Line 1455 of yacc.c  */
#line 10468 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1526:

/* Line 1455 of yacc.c  */
#line 10477 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            LEX *lex=Lex;
            lex->limit_rows_examined= (yyvsp[(1) - (1)].item);
          }
    break;

  case 1527:

/* Line 1455 of yacc.c  */
#line 10484 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->select_limit= 0;
          }
    break;

  case 1528:

/* Line 1455 of yacc.c  */
#line 10489 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(2) - (2)].item);
            Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
            sel->explicit_limit= 1;
          }
    break;

  case 1529:

/* Line 1455 of yacc.c  */
#line 10495 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; }
    break;

  case 1530:

/* Line 1455 of yacc.c  */
#line 10496 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; }
    break;

  case 1531:

/* Line 1455 of yacc.c  */
#line 10500 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.num)= (int) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1532:

/* Line 1455 of yacc.c  */
#line 10501 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[(2) - (2)].lex_str).str, (char**) 0, &error); }
    break;

  case 1533:

/* Line 1455 of yacc.c  */
#line 10502 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[(2) - (2)].lex_str).str, (char**) 0, &error); }
    break;

  case 1534:

/* Line 1455 of yacc.c  */
#line 10506 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1535:

/* Line 1455 of yacc.c  */
#line 10507 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1536:

/* Line 1455 of yacc.c  */
#line 10508 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1537:

/* Line 1455 of yacc.c  */
#line 10509 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1538:

/* Line 1455 of yacc.c  */
#line 10510 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1539:

/* Line 1455 of yacc.c  */
#line 10511 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1540:

/* Line 1455 of yacc.c  */
#line 10515 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1541:

/* Line 1455 of yacc.c  */
#line 10516 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1542:

/* Line 1455 of yacc.c  */
#line 10517 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1543:

/* Line 1455 of yacc.c  */
#line 10518 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1544:

/* Line 1455 of yacc.c  */
#line 10519 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1545:

/* Line 1455 of yacc.c  */
#line 10523 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1546:

/* Line 1455 of yacc.c  */
#line 10524 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1547:

/* Line 1455 of yacc.c  */
#line 10525 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1548:

/* Line 1455 of yacc.c  */
#line 10526 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1549:

/* Line 1455 of yacc.c  */
#line 10527 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1550:

/* Line 1455 of yacc.c  */
#line 10531 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1551:

/* Line 1455 of yacc.c  */
#line 10532 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1552:

/* Line 1455 of yacc.c  */
#line 10533 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ulonglong_number)= strtoull((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1553:

/* Line 1455 of yacc.c  */
#line 10534 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1554:

/* Line 1455 of yacc.c  */
#line 10535 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1555:

/* Line 1455 of yacc.c  */
#line 10540 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
    break;

  case 1558:

/* Line 1455 of yacc.c  */
#line 10549 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.choice)= (yyvsp[(1) - (1)].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; }
    break;

  case 1559:

/* Line 1455 of yacc.c  */
#line 10550 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.choice)= HA_CHOICE_UNDEF; }
    break;

  case 1561:

/* Line 1455 of yacc.c  */
#line 10556 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (! lex->parsing_options.allows_select_procedure)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            if (&lex->select_lex != lex->current_select)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
              MYSQL_YYABORT;
            }
            lex->proc_list.elements=0;
            lex->proc_list.first=0;
            lex->proc_list.next= &lex->proc_list.first;
            Item_field *item= new (thd->mem_root)
                                Item_field(&lex->current_select->context,
                                           NULL, NULL, (yyvsp[(2) - (2)].lex_str).str);
            if (item == NULL)
              MYSQL_YYABORT;
            if (add_proc_to_list(lex->thd, item))
              MYSQL_YYABORT;
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1563:

/* Line 1455 of yacc.c  */
#line 10586 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1564:

/* Line 1455 of yacc.c  */
#line 10587 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1567:

/* Line 1455 of yacc.c  */
#line 10597 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_proc_to_list(thd, (yyvsp[(2) - (3)].item)))
              MYSQL_YYABORT;
            if (!(yyvsp[(2) - (3)].item)->name)
              (yyvsp[(2) - (3)].item)->set_name((yyvsp[(1) - (3)].simple_string), (uint) ((yyvsp[(3) - (3)].simple_string) - (yyvsp[(1) - (3)].simple_string)), thd->charset());
          }
    break;

  case 1568:

/* Line 1455 of yacc.c  */
#line 10606 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe && (!(lex->result= new select_dumpvar())))
              MYSQL_YYABORT;
          }
    break;

  case 1569:

/* Line 1455 of yacc.c  */
#line 10612 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1571:

/* Line 1455 of yacc.c  */
#line 10617 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1572:

/* Line 1455 of yacc.c  */
#line 10622 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result) 
            {
              my_var *var= new my_var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0);
              if (var == NULL)
                MYSQL_YYABORT;
              ((select_dumpvar *)lex->result)->var_list.push_back(var);
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1573:

/* Line 1455 of yacc.c  */
#line 10641 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            sp_variable_t *t;

            if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (lex->result)
            {
              my_var *var= new my_var((yyvsp[(1) - (1)].lex_str),1,t->offset,t->type);
              if (var == NULL)
                MYSQL_YYABORT;
              ((select_dumpvar *)lex->result)->var_list.push_back(var);
#ifndef DBUG_OFF
              var->sp= lex->sphead;
#endif
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1574:

/* Line 1455 of yacc.c  */
#line 10673 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_select_into)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1576:

/* Line 1455 of yacc.c  */
#line 10685 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
            if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str, 0)) ||
                !(lex->result= new select_export(lex->exchange)))
              MYSQL_YYABORT;
          }
    break;

  case 1577:

/* Line 1455 of yacc.c  */
#line 10693 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(4) - (4)].charset); }
    break;

  case 1579:

/* Line 1455 of yacc.c  */
#line 10696 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe)
            {
              lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
              if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str,1)))
                MYSQL_YYABORT;
              if (!(lex->result= new select_dump(lex->exchange)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1580:

/* Line 1455 of yacc.c  */
#line 10708 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1581:

/* Line 1455 of yacc.c  */
#line 10719 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DO;
            mysql_init_select(lex);
          }
    break;

  case 1582:

/* Line 1455 of yacc.c  */
#line 10725 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->insert_list= (yyvsp[(3) - (3)].item_list);
          }
    break;

  case 1583:

/* Line 1455 of yacc.c  */
#line 10736 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DROP_TABLE;
            lex->drop_temporary= (yyvsp[(2) - (4)].num);
            lex->drop_if_exists= (yyvsp[(4) - (4)].num);
            YYPS->m_lock_type= TL_UNLOCK;
            YYPS->m_mdl_type= MDL_EXCLUSIVE;
          }
    break;

  case 1584:

/* Line 1455 of yacc.c  */
#line 10745 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1585:

/* Line 1455 of yacc.c  */
#line 10746 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1586:

/* Line 1455 of yacc.c  */
#line 10747 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (6)].lex_str).str);
            if (ad == NULL)
              MYSQL_YYABORT;
            lex->sql_command= SQLCOM_DROP_INDEX;
            lex->alter_info.reset();
            lex->alter_info.flags= ALTER_DROP_INDEX;
            lex->alter_info.drop_list.push_back(ad);
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(5) - (6)].table), NULL,
                                                        TL_OPTION_UPDATING,
                                                        TL_READ_NO_INSERT,
                                                        MDL_SHARED_NO_WRITE))
              MYSQL_YYABORT;
          }
    break;

  case 1587:

/* Line 1455 of yacc.c  */
#line 10763 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_DROP_DB;
            lex->drop_if_exists=(yyvsp[(3) - (4)].num);
            lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1588:

/* Line 1455 of yacc.c  */
#line 10770 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            sp_name *spname;
            if ((yyvsp[(4) - (6)].lex_str).str && check_db_name(&(yyvsp[(4) - (6)].lex_str)))
            {
               my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(4) - (6)].lex_str).str);
               MYSQL_YYABORT;
            }
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (6)].num);
            spname= new sp_name((yyvsp[(4) - (6)].lex_str), (yyvsp[(6) - (6)].lex_str), true);
            if (spname == NULL)
              MYSQL_YYABORT;
            spname->init_qname(thd);
            lex->spname= spname;
          }
    break;

  case 1589:

/* Line 1455 of yacc.c  */
#line 10792 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            LEX_STRING db= {0, 0};
            sp_name *spname;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            if (thd->db && lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            spname= new sp_name(db, (yyvsp[(4) - (4)].lex_str), false);
            if (spname == NULL)
              MYSQL_YYABORT;
            spname->init_qname(thd);
            lex->spname= spname;
          }
    break;

  case 1590:

/* Line 1455 of yacc.c  */
#line 10812 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_PROCEDURE;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1591:

/* Line 1455 of yacc.c  */
#line 10824 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_USER;
          }
    break;

  case 1592:

/* Line 1455 of yacc.c  */
#line 10828 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_VIEW;
            lex->drop_if_exists= (yyvsp[(3) - (3)].num);
            YYPS->m_lock_type= TL_UNLOCK;
            YYPS->m_mdl_type= MDL_EXCLUSIVE;
          }
    break;

  case 1593:

/* Line 1455 of yacc.c  */
#line 10836 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1594:

/* Line 1455 of yacc.c  */
#line 10838 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->spname= (yyvsp[(4) - (4)].spname);
            Lex->sql_command = SQLCOM_DROP_EVENT;
          }
    break;

  case 1595:

/* Line 1455 of yacc.c  */
#line 10844 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_TRIGGER;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1596:

/* Line 1455 of yacc.c  */
#line 10851 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE;
          }
    break;

  case 1597:

/* Line 1455 of yacc.c  */
#line 10856 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
          }
    break;

  case 1598:

/* Line 1455 of yacc.c  */
#line 10861 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_SERVER;
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->server_options.server_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(4) - (4)].lex_str).length;
          }
    break;

  case 1601:

/* Line 1455 of yacc.c  */
#line 10876 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (1)].table), NULL,
                                           TL_OPTION_UPDATING,
                                           YYPS->m_lock_type,
                                           YYPS->m_mdl_type))
              MYSQL_YYABORT;
          }
    break;

  case 1604:

/* Line 1455 of yacc.c  */
#line 10892 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (1)].table), NULL,
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           YYPS->m_lock_type,
                                           YYPS->m_mdl_type))
              MYSQL_YYABORT;
          }
    break;

  case 1605:

/* Line 1455 of yacc.c  */
#line 10902 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1606:

/* Line 1455 of yacc.c  */
#line 10903 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1607:

/* Line 1455 of yacc.c  */
#line 10907 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1608:

/* Line 1455 of yacc.c  */
#line 10908 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1609:

/* Line 1455 of yacc.c  */
#line 10916 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSERT;
            lex->duplicates= DUP_ERROR; 
            mysql_init_select(lex);
          }
    break;

  case 1610:

/* Line 1455 of yacc.c  */
#line 10924 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (5)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1611:

/* Line 1455 of yacc.c  */
#line 10929 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1612:

/* Line 1455 of yacc.c  */
#line 10934 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPLACE;
            lex->duplicates= DUP_REPLACE;
            mysql_init_select(lex);
          }
    break;

  case 1613:

/* Line 1455 of yacc.c  */
#line 10941 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (4)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1614:

/* Line 1455 of yacc.c  */
#line 10946 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1615:

/* Line 1455 of yacc.c  */
#line 10951 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              If it is SP we do not allow insert optimisation when result of
              insert visible only after the table unlocking but everyone can
              read table.
            */
            (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
          }
    break;

  case 1616:

/* Line 1455 of yacc.c  */
#line 10959 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1617:

/* Line 1455 of yacc.c  */
#line 10961 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() -
                                                    thd->query());
          Lex->keyword_delayed_end_offset= Lex->keyword_delayed_begin_offset +
                                           YYLIP->yyLength() + 1;
          (yyval.lock_type)= TL_WRITE_DELAYED;
        }
    break;

  case 1618:

/* Line 1455 of yacc.c  */
#line 10968 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE; }
    break;

  case 1619:

/* Line 1455 of yacc.c  */
#line 10972 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= (yyvsp[(1) - (1)].lock_type); }
    break;

  case 1620:

/* Line 1455 of yacc.c  */
#line 10974 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() -
                                                    thd->query());
          Lex->keyword_delayed_end_offset= Lex->keyword_delayed_begin_offset +
                                           YYLIP->yyLength() + 1;
          (yyval.lock_type)= TL_WRITE_DELAYED;
        }
    break;

  case 1621:

/* Line 1455 of yacc.c  */
#line 10984 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1622:

/* Line 1455 of yacc.c  */
#line 10985 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1623:

/* Line 1455 of yacc.c  */
#line 10990 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->field_list.empty();
            lex->many_values.empty();
            lex->insert_list=0;
          }
    break;

  case 1624:

/* Line 1455 of yacc.c  */
#line 10998 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1625:

/* Line 1455 of yacc.c  */
#line 10999 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1626:

/* Line 1455 of yacc.c  */
#line 11000 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1627:

/* Line 1455 of yacc.c  */
#line 11002 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!(lex->insert_list = new List_item) ||
                lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1629:

/* Line 1455 of yacc.c  */
#line 11012 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1630:

/* Line 1455 of yacc.c  */
#line 11013 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1631:

/* Line 1455 of yacc.c  */
#line 11017 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1632:

/* Line 1455 of yacc.c  */
#line 11018 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1633:

/* Line 1455 of yacc.c  */
#line 11020 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 1634:

/* Line 1455 of yacc.c  */
#line 11021 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1635:

/* Line 1455 of yacc.c  */
#line 11023 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 1636:

/* Line 1455 of yacc.c  */
#line 11024 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1641:

/* Line 1455 of yacc.c  */
#line 11039 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->field_list.push_back((yyvsp[(1) - (3)].item)) ||
                lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1642:

/* Line 1455 of yacc.c  */
#line 11048 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1643:

/* Line 1455 of yacc.c  */
#line 11049 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1644:

/* Line 1455 of yacc.c  */
#line 11053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1645:

/* Line 1455 of yacc.c  */
#line 11054 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1646:

/* Line 1455 of yacc.c  */
#line 11059 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
              if (!(Lex->insert_list = new List_item))
                MYSQL_YYABORT;
          }
    break;

  case 1647:

/* Line 1455 of yacc.c  */
#line 11064 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1648:

/* Line 1455 of yacc.c  */
#line 11072 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1650:

/* Line 1455 of yacc.c  */
#line 11078 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1651:

/* Line 1455 of yacc.c  */
#line 11083 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(1) - (1)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1652:

/* Line 1455 of yacc.c  */
#line 11090 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1653:

/* Line 1455 of yacc.c  */
#line 11092 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_default_value(Lex->current_context());
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1655:

/* Line 1455 of yacc.c  */
#line 11101 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->duplicates= DUP_UPDATE; }
    break;

  case 1657:

/* Line 1455 of yacc.c  */
#line 11109 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            mysql_init_select(lex);
            lex->sql_command= SQLCOM_UPDATE;
            lex->duplicates= DUP_ERROR; 
          }
    break;

  case 1658:

/* Line 1455 of yacc.c  */
#line 11117 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->select_lex.table_list.elements > 1)
              lex->sql_command= SQLCOM_UPDATE_MULTI;
            else if (lex->select_lex.get_table_list()->derived)
            {
              /* it is single table update and it is update of derived table */
              my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
                       lex->select_lex.get_table_list()->alias, "UPDATE");
              MYSQL_YYABORT;
            }
            /*
              In case of multi-update setting write lock for all tables may
              be too pessimistic. We will decrease lock level if possible in
              mysql_multi_update().
            */
            Select->set_lock_for_tables((yyvsp[(3) - (7)].lock_type));
          }
    break;

  case 1659:

/* Line 1455 of yacc.c  */
#line 11135 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1662:

/* Line 1455 of yacc.c  */
#line 11145 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_item_to_list(thd, (yyvsp[(1) - (3)].item)) || add_value_to_list(thd, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1665:

/* Line 1455 of yacc.c  */
#line 11158 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->update_list.push_back((yyvsp[(1) - (3)].item)) || 
              lex->value_list.push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1666:

/* Line 1455 of yacc.c  */
#line 11167 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1667:

/* Line 1455 of yacc.c  */
#line 11168 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1668:

/* Line 1455 of yacc.c  */
#line 11175 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DELETE;
            mysql_init_select(lex);
            YYPS->m_lock_type= TL_WRITE_DEFAULT;
            YYPS->m_mdl_type= MDL_SHARED_WRITE;

            lex->ignore= 0;
            lex->select_lex.init_order();
          }
    break;

  case 1670:

/* Line 1455 of yacc.c  */
#line 11190 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!Select->add_table_to_list(thd, (yyvsp[(2) - (2)].table), NULL, TL_OPTION_UPDATING,
                                           YYPS->m_lock_type,
                                           YYPS->m_mdl_type))
              MYSQL_YYABORT;
            YYPS->m_lock_type= TL_READ_DEFAULT;
            YYPS->m_mdl_type= MDL_SHARED_READ;
          }
    break;

  case 1671:

/* Line 1455 of yacc.c  */
#line 11199 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1672:

/* Line 1455 of yacc.c  */
#line 11201 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            mysql_init_multi_delete(Lex);
            YYPS->m_lock_type= TL_READ_DEFAULT;
            YYPS->m_mdl_type= MDL_SHARED_READ;
          }
    break;

  case 1673:

/* Line 1455 of yacc.c  */
#line 11207 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1674:

/* Line 1455 of yacc.c  */
#line 11212 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            mysql_init_multi_delete(Lex);
            YYPS->m_lock_type= TL_READ_DEFAULT;
            YYPS->m_mdl_type= MDL_SHARED_READ;
          }
    break;

  case 1675:

/* Line 1455 of yacc.c  */
#line 11218 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1678:

/* Line 1455 of yacc.c  */
#line 11231 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Table_ident *ti= new Table_ident((yyvsp[(1) - (2)].lex_str));
            if (ti == NULL)
              MYSQL_YYABORT;
            if (!Select->add_table_to_list(thd,
                                           ti,
                                           NULL,
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           YYPS->m_lock_type,
                                           YYPS->m_mdl_type))
              MYSQL_YYABORT;
          }
    break;

  case 1679:

/* Line 1455 of yacc.c  */
#line 11244 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Table_ident *ti= new Table_ident(thd, (yyvsp[(1) - (4)].lex_str), (yyvsp[(3) - (4)].lex_str), 0);
            if (ti == NULL)
              MYSQL_YYABORT;
            if (!Select->add_table_to_list(thd,
                                           ti,
                                           NULL,
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           YYPS->m_lock_type,
                                           YYPS->m_mdl_type))
              MYSQL_YYABORT;
          }
    break;

  case 1680:

/* Line 1455 of yacc.c  */
#line 11259 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1681:

/* Line 1455 of yacc.c  */
#line 11260 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1682:

/* Line 1455 of yacc.c  */
#line 11264 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1683:

/* Line 1455 of yacc.c  */
#line 11265 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1684:

/* Line 1455 of yacc.c  */
#line 11269 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->options|= OPTION_QUICK; }
    break;

  case 1685:

/* Line 1455 of yacc.c  */
#line 11270 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1686:

/* Line 1455 of yacc.c  */
#line 11271 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1687:

/* Line 1455 of yacc.c  */
#line 11276 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX* lex= Lex;
            lex->sql_command= SQLCOM_TRUNCATE;
            lex->alter_info.reset();
            lex->select_lex.options= 0;
            lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
            lex->select_lex.init_order();
            YYPS->m_lock_type= TL_WRITE;
            YYPS->m_mdl_type= MDL_EXCLUSIVE;
          }
    break;

  case 1688:

/* Line 1455 of yacc.c  */
#line 11287 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX* lex= thd->lex;
            DBUG_ASSERT(!lex->m_stmt);
            lex->m_stmt= new (thd->mem_root) Truncate_statement(lex);
            if (lex->m_stmt == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1695:

/* Line 1455 of yacc.c  */
#line 11311 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_CPU;
    }
    break;

  case 1696:

/* Line 1455 of yacc.c  */
#line 11315 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_MEMORY;
    }
    break;

  case 1697:

/* Line 1455 of yacc.c  */
#line 11319 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_BLOCK_IO;
    }
    break;

  case 1698:

/* Line 1455 of yacc.c  */
#line 11323 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_CONTEXT;
    }
    break;

  case 1699:

/* Line 1455 of yacc.c  */
#line 11327 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_PAGE_FAULTS;
    }
    break;

  case 1700:

/* Line 1455 of yacc.c  */
#line 11331 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_IPC;
    }
    break;

  case 1701:

/* Line 1455 of yacc.c  */
#line 11335 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_SWAPS;
    }
    break;

  case 1702:

/* Line 1455 of yacc.c  */
#line 11339 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_SOURCE;
    }
    break;

  case 1703:

/* Line 1455 of yacc.c  */
#line 11343 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_options|= PROFILE_ALL;
    }
    break;

  case 1704:

/* Line 1455 of yacc.c  */
#line 11350 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_query_id= 0;
    }
    break;

  case 1705:

/* Line 1455 of yacc.c  */
#line 11354 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
      Lex->profile_query_id= atoi((yyvsp[(3) - (3)].lex_str).str);
    }
    break;

  case 1706:

/* Line 1455 of yacc.c  */
#line 11363 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->wild=0;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
          }
    break;

  case 1707:

/* Line 1455 of yacc.c  */
#line 11371 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1708:

/* Line 1455 of yacc.c  */
#line 11378 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_DATABASES;
             if (prepare_schema_table(thd, lex, 0, SCH_SCHEMATA))
               MYSQL_YYABORT;
           }
    break;

  case 1709:

/* Line 1455 of yacc.c  */
#line 11385 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLES;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(thd, lex, 0, SCH_TABLE_NAMES))
               MYSQL_YYABORT;
           }
    break;

  case 1710:

/* Line 1455 of yacc.c  */
#line 11393 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TRIGGERS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(thd, lex, 0, SCH_TRIGGERS))
               MYSQL_YYABORT;
           }
    break;

  case 1711:

/* Line 1455 of yacc.c  */
#line 11401 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_EVENTS;
             lex->select_lex.db= (yyvsp[(2) - (3)].simple_string);
             if (prepare_schema_table(thd, lex, 0, SCH_EVENTS))
               MYSQL_YYABORT;
           }
    break;

  case 1712:

/* Line 1455 of yacc.c  */
#line 11409 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLE_STATUS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(thd, lex, 0, SCH_TABLES))
               MYSQL_YYABORT;
           }
    break;

  case 1713:

/* Line 1455 of yacc.c  */
#line 11417 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
            lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
            if (prepare_schema_table(thd, lex, 0, SCH_OPEN_TABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1714:

/* Line 1455 of yacc.c  */
#line 11425 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(thd, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
          }
    break;

  case 1715:

/* Line 1455 of yacc.c  */
#line 11432 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_info.db_type= (yyvsp[(2) - (3)].db_type); }
    break;

  case 1716:

/* Line 1455 of yacc.c  */
#line 11434 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_info.db_type= NULL; }
    break;

  case 1717:

/* Line 1455 of yacc.c  */
#line 11436 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            if ((yyvsp[(5) - (6)].simple_string))
              (yyvsp[(4) - (6)].table)->change_db((yyvsp[(5) - (6)].simple_string));
            if (prepare_schema_table(thd, lex, (yyvsp[(4) - (6)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1718:

/* Line 1455 of yacc.c  */
#line 11445 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_BINLOGS;
          }
    break;

  case 1719:

/* Line 1455 of yacc.c  */
#line 11449 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
          }
    break;

  case 1720:

/* Line 1455 of yacc.c  */
#line 11453 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
          }
    break;

  case 1722:

/* Line 1455 of yacc.c  */
#line 11458 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS;
          }
    break;

  case 1724:

/* Line 1455 of yacc.c  */
#line 11463 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_KEYS;
            if ((yyvsp[(4) - (5)].simple_string))
              (yyvsp[(3) - (5)].table)->change_db((yyvsp[(4) - (5)].simple_string));
            if (prepare_schema_table(thd, lex, (yyvsp[(3) - (5)].table), SCH_STATISTICS))
              MYSQL_YYABORT;
          }
    break;

  case 1725:

/* Line 1455 of yacc.c  */
#line 11472 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            if (prepare_schema_table(thd, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
          }
    break;

  case 1726:

/* Line 1455 of yacc.c  */
#line 11479 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_AUTHORS;
            push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                                ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
                                ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT),
                                "SHOW AUTHORS");
          }
    break;

  case 1727:

/* Line 1455 of yacc.c  */
#line 11488 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
            push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                                ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,
                                ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT),
                                "SHOW CONTRIBUTORS");
          }
    break;

  case 1728:

/* Line 1455 of yacc.c  */
#line 11497 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
          }
    break;

  case 1729:

/* Line 1455 of yacc.c  */
#line 11502 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (void) create_select_for_variable("warning_count"); }
    break;

  case 1730:

/* Line 1455 of yacc.c  */
#line 11504 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (void) create_select_for_variable("error_count"); }
    break;

  case 1731:

/* Line 1455 of yacc.c  */
#line 11506 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_WARNS;}
    break;

  case 1732:

/* Line 1455 of yacc.c  */
#line 11508 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_ERRORS;}
    break;

  case 1733:

/* Line 1455 of yacc.c  */
#line 11510 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_PROFILES; }
    break;

  case 1734:

/* Line 1455 of yacc.c  */
#line 11512 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PROFILE;
            if (prepare_schema_table(thd, lex, NULL, SCH_PROFILES) != 0)
              YYABORT;
          }
    break;

  case 1735:

/* Line 1455 of yacc.c  */
#line 11519 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(thd, lex, 0, SCH_STATUS))
              MYSQL_YYABORT;
          }
    break;

  case 1736:

/* Line 1455 of yacc.c  */
#line 11527 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
    break;

  case 1737:

/* Line 1455 of yacc.c  */
#line 11529 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_VARIABLES;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(thd, lex, 0, SCH_VARIABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1738:

/* Line 1455 of yacc.c  */
#line 11537 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CHARSETS;
            if (prepare_schema_table(thd, lex, 0, SCH_CHARSETS))
              MYSQL_YYABORT;
          }
    break;

  case 1739:

/* Line 1455 of yacc.c  */
#line 11544 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_COLLATIONS;
            if (prepare_schema_table(thd, lex, 0, SCH_COLLATIONS))
              MYSQL_YYABORT;
          }
    break;

  case 1740:

/* Line 1455 of yacc.c  */
#line 11551 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            LEX_USER *curr_user;
            if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            bzero(curr_user, sizeof(st_lex_user));
            lex->grant_user= curr_user;
          }
    break;

  case 1741:

/* Line 1455 of yacc.c  */
#line 11561 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            lex->grant_user=(yyvsp[(3) - (3)].lex_user);
            lex->grant_user->password=null_lex_str;
          }
    break;

  case 1742:

/* Line 1455 of yacc.c  */
#line 11568 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
            Lex->create_info.options=(yyvsp[(3) - (4)].num);
            Lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1743:

/* Line 1455 of yacc.c  */
#line 11574 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (3)].table), NULL,0))
              MYSQL_YYABORT;
            lex->only_view= 0;
            lex->create_info.storage_media= HA_SM_DEFAULT;
          }
    break;

  case 1744:

/* Line 1455 of yacc.c  */
#line 11583 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (3)].table), NULL, 0))
              MYSQL_YYABORT;
            lex->only_view= 1;
          }
    break;

  case 1745:

/* Line 1455 of yacc.c  */
#line 11591 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
          }
    break;

  case 1746:

/* Line 1455 of yacc.c  */
#line 11595 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
          }
    break;

  case 1747:

/* Line 1455 of yacc.c  */
#line 11599 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
           LEX *lex= Lex;
           lex->sql_command= SQLCOM_SHOW_CLIENT_STATS;
           if (prepare_schema_table(thd, lex, 0, SCH_CLIENT_STATS))
             MYSQL_YYABORT;
          }
    break;

  case 1748:

/* Line 1455 of yacc.c  */
#line 11606 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_USER_STATS;
             if (prepare_schema_table(thd, lex, 0, SCH_USER_STATS))
               MYSQL_YYABORT;
          }
    break;

  case 1749:

/* Line 1455 of yacc.c  */
#line 11613 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLE_STATS;
             if (prepare_schema_table(thd, lex, 0, SCH_TABLE_STATS))
               MYSQL_YYABORT;
          }
    break;

  case 1750:

/* Line 1455 of yacc.c  */
#line 11620 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_INDEX_STATS;
             if (prepare_schema_table(thd, lex, 0, SCH_INDEX_STATS))
               MYSQL_YYABORT;
          }
    break;

  case 1751:

/* Line 1455 of yacc.c  */
#line 11627 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1752:

/* Line 1455 of yacc.c  */
#line 11634 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1753:

/* Line 1455 of yacc.c  */
#line 11641 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1754:

/* Line 1455 of yacc.c  */
#line 11647 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
            if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1755:

/* Line 1455 of yacc.c  */
#line 11654 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
            if (prepare_schema_table(thd, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1756:

/* Line 1455 of yacc.c  */
#line 11661 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1757:

/* Line 1455 of yacc.c  */
#line 11666 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1758:

/* Line 1455 of yacc.c  */
#line 11671 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->spname= (yyvsp[(3) - (3)].spname);
            Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
          }
    break;

  case 1759:

/* Line 1455 of yacc.c  */
#line 11679 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
    break;

  case 1760:

/* Line 1455 of yacc.c  */
#line 11681 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
    break;

  case 1761:

/* Line 1455 of yacc.c  */
#line 11683 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
    break;

  case 1766:

/* Line 1455 of yacc.c  */
#line 11697 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.simple_string)= 0; }
    break;

  case 1767:

/* Line 1455 of yacc.c  */
#line 11698 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1768:

/* Line 1455 of yacc.c  */
#line 11702 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->verbose=0; }
    break;

  case 1769:

/* Line 1455 of yacc.c  */
#line 11703 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->verbose=1; }
    break;

  case 1772:

/* Line 1455 of yacc.c  */
#line 11712 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->mi.log_file_name = 0; }
    break;

  case 1773:

/* Line 1455 of yacc.c  */
#line 11713 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->mi.log_file_name = (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1774:

/* Line 1455 of yacc.c  */
#line 11717 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->mi.pos = 4; /* skip magic number */ }
    break;

  case 1775:

/* Line 1455 of yacc.c  */
#line 11718 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->mi.pos = (yyvsp[(2) - (2)].ulonglong_number); }
    break;

  case 1777:

/* Line 1455 of yacc.c  */
#line 11724 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->wild= new (thd->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
                                                    system_charset_info);
            if (Lex->wild == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1778:

/* Line 1455 of yacc.c  */
#line 11731 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->where= normalize_cond((yyvsp[(2) - (2)].item));
            if ((yyvsp[(2) - (2)].item))
              (yyvsp[(2) - (2)].item)->top_level_item();
          }
    break;

  case 1779:

/* Line 1455 of yacc.c  */
#line 11741 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            lex->select_lex.db= 0;
            lex->verbose= 0;
            if (prepare_schema_table(thd, lex, (yyvsp[(2) - (2)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1780:

/* Line 1455 of yacc.c  */
#line 11752 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1781:

/* Line 1455 of yacc.c  */
#line 11756 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->describe|= DESCRIBE_NORMAL; }
    break;

  case 1782:

/* Line 1455 of yacc.c  */
#line 11758 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->select_lex.options|= SELECT_DESCRIBE;
          }
    break;

  case 1785:

/* Line 1455 of yacc.c  */
#line 11770 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1786:

/* Line 1455 of yacc.c  */
#line 11771 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->describe|= DESCRIBE_EXTENDED; }
    break;

  case 1787:

/* Line 1455 of yacc.c  */
#line 11772 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->describe|= DESCRIBE_PARTITIONS; }
    break;

  case 1788:

/* Line 1455 of yacc.c  */
#line 11776 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1789:

/* Line 1455 of yacc.c  */
#line 11777 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->wild= (yyvsp[(1) - (1)].string); }
    break;

  case 1790:

/* Line 1455 of yacc.c  */
#line 11779 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->wild= new (thd->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
            if (Lex->wild == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1791:

/* Line 1455 of yacc.c  */
#line 11793 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_FLUSH;
            lex->type= 0;
            lex->no_write_to_binlog= (yyvsp[(2) - (2)].num);
          }
    break;

  case 1792:

/* Line 1455 of yacc.c  */
#line 11800 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1793:

/* Line 1455 of yacc.c  */
#line 11805 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->type|= REFRESH_TABLES;
            /*
              Set type of metadata and table locks for
              FLUSH TABLES table_list [WITH READ LOCK].
            */
            YYPS->m_lock_type= TL_READ_NO_INSERT;
            YYPS->m_mdl_type= MDL_SHARED_HIGH_PRIO;
          }
    break;

  case 1794:

/* Line 1455 of yacc.c  */
#line 11814 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1795:

/* Line 1455 of yacc.c  */
#line 11815 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1797:

/* Line 1455 of yacc.c  */
#line 11820 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1798:

/* Line 1455 of yacc.c  */
#line 11822 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            TABLE_LIST *tables= Lex->query_tables;
            Lex->type|= REFRESH_READ_LOCK | (yyvsp[(4) - (4)].num);
            for (; tables; tables= tables->next_global)
            {
              tables->mdl_request.set_type(MDL_SHARED_NO_WRITE);
              tables->required_type= FRMTYPE_TABLE; /* Don't try to flush views. */
              tables->open_type= OT_BASE_ONLY;      /* Ignore temporary tables. */
            }
          }
    break;

  case 1800:

/* Line 1455 of yacc.c  */
#line 11837 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1801:

/* Line 1455 of yacc.c  */
#line 11842 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_ERROR_LOG; }
    break;

  case 1802:

/* Line 1455 of yacc.c  */
#line 11844 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_ENGINE_LOG; }
    break;

  case 1803:

/* Line 1455 of yacc.c  */
#line 11846 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_GENERAL_LOG; }
    break;

  case 1804:

/* Line 1455 of yacc.c  */
#line 11848 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_SLOW_LOG; }
    break;

  case 1805:

/* Line 1455 of yacc.c  */
#line 11850 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_BINARY_LOG; }
    break;

  case 1806:

/* Line 1455 of yacc.c  */
#line 11852 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_RELAY_LOG; }
    break;

  case 1807:

/* Line 1455 of yacc.c  */
#line 11854 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
    break;

  case 1808:

/* Line 1455 of yacc.c  */
#line 11856 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_HOSTS; }
    break;

  case 1809:

/* Line 1455 of yacc.c  */
#line 11858 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_GRANT; }
    break;

  case 1810:

/* Line 1455 of yacc.c  */
#line 11860 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_LOG; }
    break;

  case 1811:

/* Line 1455 of yacc.c  */
#line 11862 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_STATUS; }
    break;

  case 1812:

/* Line 1455 of yacc.c  */
#line 11864 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            Lex->type|= REFRESH_SLAVE;
            Lex->reset_slave_info.all= false;
          }
    break;

  case 1813:

/* Line 1455 of yacc.c  */
#line 11869 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_CLIENT_STATS; }
    break;

  case 1814:

/* Line 1455 of yacc.c  */
#line 11871 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_USER_STATS; }
    break;

  case 1815:

/* Line 1455 of yacc.c  */
#line 11873 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_TABLE_STATS; }
    break;

  case 1816:

/* Line 1455 of yacc.c  */
#line 11875 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_INDEX_STATS; }
    break;

  case 1817:

/* Line 1455 of yacc.c  */
#line 11877 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1818:

/* Line 1455 of yacc.c  */
#line 11879 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_DES_KEY_FILE; }
    break;

  case 1819:

/* Line 1455 of yacc.c  */
#line 11881 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_USER_RESOURCES; }
    break;

  case 1820:

/* Line 1455 of yacc.c  */
#line 11885 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1821:

/* Line 1455 of yacc.c  */
#line 11886 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1822:

/* Line 1455 of yacc.c  */
#line 11890 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.num)= 0;}
    break;

  case 1823:

/* Line 1455 of yacc.c  */
#line 11891 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.num)= REFRESH_CHECKPOINT; }
    break;

  case 1824:

/* Line 1455 of yacc.c  */
#line 11895 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RESET; lex->type=0;
          }
    break;

  case 1825:

/* Line 1455 of yacc.c  */
#line 11900 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1828:

/* Line 1455 of yacc.c  */
#line 11909 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1829:

/* Line 1455 of yacc.c  */
#line 11910 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 1830:

/* Line 1455 of yacc.c  */
#line 11911 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1831:

/* Line 1455 of yacc.c  */
#line 11912 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE;}
    break;

  case 1832:

/* Line 1455 of yacc.c  */
#line 11916 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->reset_slave_info.all= false; }
    break;

  case 1833:

/* Line 1455 of yacc.c  */
#line 11917 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->reset_slave_info.all= true; }
    break;

  case 1834:

/* Line 1455 of yacc.c  */
#line 11922 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type=0;
            lex->sql_command = SQLCOM_PURGE;
          }
    break;

  case 1835:

/* Line 1455 of yacc.c  */
#line 11928 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1837:

/* Line 1455 of yacc.c  */
#line 11937 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->to_log = (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1838:

/* Line 1455 of yacc.c  */
#line 11941 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(2) - (2)].item));
            lex->sql_command= SQLCOM_PURGE_BEFORE;
          }
    break;

  case 1839:

/* Line 1455 of yacc.c  */
#line 11953 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->value_list.empty();
            lex->users_list.empty();
            lex->sql_command= SQLCOM_KILL;
          }
    break;

  case 1840:

/* Line 1455 of yacc.c  */
#line 11960 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->kill_signal= (killed_state) ((yyvsp[(3) - (5)].num) | (yyvsp[(4) - (5)].num));
          }
    break;

  case 1841:

/* Line 1455 of yacc.c  */
#line 11966 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (int) KILL_HARD_BIT; }
    break;

  case 1842:

/* Line 1455 of yacc.c  */
#line 11967 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (int) KILL_HARD_BIT; }
    break;

  case 1843:

/* Line 1455 of yacc.c  */
#line 11968 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1844:

/* Line 1455 of yacc.c  */
#line 11971 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (int) KILL_CONNECTION; }
    break;

  case 1845:

/* Line 1455 of yacc.c  */
#line 11972 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (int) KILL_CONNECTION; }
    break;

  case 1846:

/* Line 1455 of yacc.c  */
#line 11973 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= (int) KILL_QUERY; }
    break;

  case 1847:

/* Line 1455 of yacc.c  */
#line 11978 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
          Lex->value_list.push_front((yyval.item));
          Lex->kill_type= KILL_TYPE_ID;
         }
    break;

  case 1848:

/* Line 1455 of yacc.c  */
#line 11983 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->users_list.push_back((yyvsp[(2) - (2)].lex_user));
            Lex->kill_type= KILL_TYPE_USER;
          }
    break;

  case 1849:

/* Line 1455 of yacc.c  */
#line 11993 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CHANGE_DB;
            lex->select_lex.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1850:

/* Line 1455 of yacc.c  */
#line 12004 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), 
                       (yyvsp[(2) - (2)].filetype) == FILETYPE_CSV ? "LOAD DATA" : "LOAD XML");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1851:

/* Line 1455 of yacc.c  */
#line 12015 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_LOAD;
            lex->local_file=  (yyvsp[(5) - (7)].num);
            lex->duplicates= DUP_ERROR;
            lex->ignore= 0;
            if (!(lex->exchange= new sql_exchange((yyvsp[(7) - (7)].lex_str).str, 0, (yyvsp[(2) - (7)].filetype))))
              MYSQL_YYABORT;
          }
    break;

  case 1852:

/* Line 1455 of yacc.c  */
#line 12025 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!Select->add_table_to_list(thd, (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
                                           (yyvsp[(4) - (12)].lock_type), MDL_SHARED_WRITE))
              MYSQL_YYABORT;
            lex->field_list.empty();
            lex->update_list.empty();
            lex->value_list.empty();
          }
    break;

  case 1853:

/* Line 1455 of yacc.c  */
#line 12035 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(14) - (14)].charset); }
    break;

  case 1854:

/* Line 1455 of yacc.c  */
#line 12039 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1855:

/* Line 1455 of yacc.c  */
#line 12043 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.filetype)= FILETYPE_CSV; }
    break;

  case 1856:

/* Line 1455 of yacc.c  */
#line 12044 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.filetype)= FILETYPE_XML; }
    break;

  case 1857:

/* Line 1455 of yacc.c  */
#line 12048 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=0;}
    break;

  case 1858:

/* Line 1455 of yacc.c  */
#line 12049 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=1;}
    break;

  case 1859:

/* Line 1455 of yacc.c  */
#line 12053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1860:

/* Line 1455 of yacc.c  */
#line 12055 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Ignore this option in SP to avoid problem with query cache and
              triggers with non default priority locks
            */
            (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
          }
    break;

  case 1861:

/* Line 1455 of yacc.c  */
#line 12062 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1862:

/* Line 1455 of yacc.c  */
#line 12066 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->duplicates=DUP_ERROR; }
    break;

  case 1863:

/* Line 1455 of yacc.c  */
#line 12067 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->duplicates=DUP_REPLACE; }
    break;

  case 1864:

/* Line 1455 of yacc.c  */
#line 12068 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1869:

/* Line 1455 of yacc.c  */
#line 12083 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->field_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1870:

/* Line 1455 of yacc.c  */
#line 12088 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            DBUG_ASSERT(lex->exchange != 0);
            lex->exchange->enclosed= (yyvsp[(4) - (4)].string);
            lex->exchange->opt_enclosed= 1;
          }
    break;

  case 1871:

/* Line 1455 of yacc.c  */
#line 12095 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->enclosed= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1872:

/* Line 1455 of yacc.c  */
#line 12100 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->escaped= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1877:

/* Line 1455 of yacc.c  */
#line 12118 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1878:

/* Line 1455 of yacc.c  */
#line 12123 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_start= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1879:

/* Line 1455 of yacc.c  */
#line 12130 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 1880:

/* Line 1455 of yacc.c  */
#line 12132 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->exchange->line_term = (yyvsp[(4) - (4)].string); }
    break;

  case 1882:

/* Line 1455 of yacc.c  */
#line 12137 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
          }
    break;

  case 1883:

/* Line 1455 of yacc.c  */
#line 12144 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 1884:

/* Line 1455 of yacc.c  */
#line 12146 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { }
    break;

  case 1885:

/* Line 1455 of yacc.c  */
#line 12150 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1886:

/* Line 1455 of yacc.c  */
#line 12151 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1887:

/* Line 1455 of yacc.c  */
#line 12152 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1888:

/* Line 1455 of yacc.c  */
#line 12157 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1889:

/* Line 1455 of yacc.c  */
#line 12159 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1890:

/* Line 1455 of yacc.c  */
#line 12163 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {(yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1891:

/* Line 1455 of yacc.c  */
#line 12165 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str));
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1892:

/* Line 1455 of yacc.c  */
#line 12173 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1893:

/* Line 1455 of yacc.c  */
#line 12174 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1896:

/* Line 1455 of yacc.c  */
#line 12184 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->update_list.push_back((yyvsp[(1) - (5)].item)) || 
                lex->value_list.push_back((yyvsp[(4) - (5)].item)))
                MYSQL_YYABORT;
            (yyvsp[(4) - (5)].item)->set_name_no_truncate((yyvsp[(3) - (5)].simple_string), (uint) ((yyvsp[(5) - (5)].simple_string) - (yyvsp[(3) - (5)].simple_string)), thd->charset());
          }
    break;

  case 1897:

/* Line 1455 of yacc.c  */
#line 12197 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX_STRING tmp;
            CHARSET_INFO *cs_con= thd->variables.collation_connection;
            CHARSET_INFO *cs_cli= thd->variables.character_set_client;
            uint repertoire= thd->lex->text_string_is_7bit &&
                             my_charset_is_ascii_based(cs_cli) ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            if (thd->charset_is_collation_connection ||
                (repertoire == MY_REPERTOIRE_ASCII &&
                 my_charset_is_ascii_based(cs_con)))
              tmp= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&tmp, cs_con, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, cs_cli))
                MYSQL_YYABORT;
            }
            (yyval.item)= new (thd->mem_root) Item_string(tmp.str, tmp.length, cs_con,
                                                DERIVATION_COERCIBLE,
                                                repertoire);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1898:

/* Line 1455 of yacc.c  */
#line 12220 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            uint repertoire= Lex->text_string_is_7bit ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
            (yyval.item)= new (thd->mem_root) Item_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                  national_charset_info,
                                                  DERIVATION_COERCIBLE,
                                                  repertoire);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1899:

/* Line 1455 of yacc.c  */
#line 12232 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item_string *str= new (thd->mem_root) Item_string((yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length, (yyvsp[(1) - (2)].charset));
            if (str == NULL)
              MYSQL_YYABORT;
            str->set_repertoire_from_value();
            str->set_cs_specified(TRUE);

            (yyval.item)= str;
          }
    break;

  case 1900:

/* Line 1455 of yacc.c  */
#line 12243 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item_string* item= (Item_string*) (yyvsp[(1) - (2)].item);
            item->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (!(item->collation.repertoire & MY_REPERTOIRE_EXTENDED))
            {
              /*
                 If the string has been pure ASCII so far,
                 check the new part.
              */
              CHARSET_INFO *cs= thd->variables.collation_connection;
              item->collation.repertoire|= my_string_repertoire(cs,
                                                                (yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length);
            }
          }
    break;

  case 1901:

/* Line 1455 of yacc.c  */
#line 12262 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.string)= new (thd->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
                                             (yyvsp[(1) - (1)].lex_str).length,
                                             thd->variables.collation_connection);
            if ((yyval.string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1902:

/* Line 1455 of yacc.c  */
#line 12270 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *tmp= new (thd->mem_root) Item_hex_hybrid((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1903:

/* Line 1455 of yacc.c  */
#line 12282 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *tmp= new (thd->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1904:

/* Line 1455 of yacc.c  */
#line 12290 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *tmp= new (thd->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            (yyval.string)= tmp->val_str((String*) 0);
          }
    break;

  case 1905:

/* Line 1455 of yacc.c  */
#line 12305 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            Item_param *item;
            if (! lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
            item= new (thd->mem_root) Item_param((uint) (lip->get_tok_start() - thd->query()));
            if (!((yyval.item)= item) || lex->param_list.push_back(item))
            {
              my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1906:

/* Line 1455 of yacc.c  */
#line 12324 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1907:

/* Line 1455 of yacc.c  */
#line 12325 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
    break;

  case 1908:

/* Line 1455 of yacc.c  */
#line 12327 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyvsp[(2) - (2)].item_num)->max_length++;
            (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
          }
    break;

  case 1909:

/* Line 1455 of yacc.c  */
#line 12334 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1910:

/* Line 1455 of yacc.c  */
#line 12335 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
    break;

  case 1911:

/* Line 1455 of yacc.c  */
#line 12337 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item) = new (thd->mem_root) Item_null();
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            YYLIP->next_state= MY_LEX_OPERATOR_OR_IDENT;
          }
    break;

  case 1912:

/* Line 1455 of yacc.c  */
#line 12344 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_int((char*) "FALSE",0,1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1913:

/* Line 1455 of yacc.c  */
#line 12350 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_int((char*) "TRUE",1,1);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1914:

/* Line 1455 of yacc.c  */
#line 12356 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item) = new (thd->mem_root) Item_hex_hybrid((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1915:

/* Line 1455 of yacc.c  */
#line 12362 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item) = new (thd->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1916:

/* Line 1455 of yacc.c  */
#line 12368 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)= new (thd->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1917:

/* Line 1455 of yacc.c  */
#line 12374 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *tmp= new (thd->mem_root) Item_hex_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            String *str= tmp->val_str((String*) 0);

            Item_string *item_str;
            item_str= new (thd->mem_root)
                        Item_string(NULL, /* name will be set in select_item */
                                    str ? str->ptr() : "",
                                    str ? str->length() : 0,
                                    (yyvsp[(1) - (2)].charset));
            if (!item_str ||
                !item_str->check_well_formed_result(&item_str->str_value, TRUE))
            {
              MYSQL_YYABORT;
            }

            item_str->set_repertoire_from_value();
            item_str->set_cs_specified(TRUE);

            (yyval.item)= item_str;
          }
    break;

  case 1918:

/* Line 1455 of yacc.c  */
#line 12403 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item *tmp= new (thd->mem_root) Item_bin_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (tmp == NULL)
              MYSQL_YYABORT;
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            tmp->quick_fix_field();
            String *str= tmp->val_str((String*) 0);

            Item_string *item_str;
            item_str= new (thd->mem_root)
                        Item_string(NULL, /* name will be set in select_item */
                                    str ? str->ptr() : "",
                                    str ? str->length() : 0,
                                    (yyvsp[(1) - (2)].charset));
            if (!item_str ||
                !item_str->check_well_formed_result(&item_str->str_value, TRUE))
            {
              MYSQL_YYABORT;
            }

            item_str->set_cs_specified(TRUE);

            (yyval.item)= item_str;
          }
    break;

  case 1919:

/* Line 1455 of yacc.c  */
#line 12430 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1920:

/* Line 1455 of yacc.c  */
#line 12431 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1921:

/* Line 1455 of yacc.c  */
#line 12432 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1922:

/* Line 1455 of yacc.c  */
#line 12437 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            int error;
            (yyval.item_num)= new (thd->mem_root)
                  Item_int((yyvsp[(1) - (1)].lex_str).str,
                           (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error),
                           (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1923:

/* Line 1455 of yacc.c  */
#line 12447 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            int error;
            (yyval.item_num)= new (thd->mem_root)
                  Item_int((yyvsp[(1) - (1)].lex_str).str,
                           (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error),
                           (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1924:

/* Line 1455 of yacc.c  */
#line 12457 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_num)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if ((yyval.item_num) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1925:

/* Line 1455 of yacc.c  */
#line 12463 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_num)= new (thd->mem_root) Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                   thd->charset());
            if (((yyval.item_num) == NULL) || (thd->is_error()))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1926:

/* Line 1455 of yacc.c  */
#line 12472 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item_num)= new (thd->mem_root) Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (((yyval.item_num) == NULL) || (thd->is_error()))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1927:

/* Line 1455 of yacc.c  */
#line 12486 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1928:

/* Line 1455 of yacc.c  */
#line 12487 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1929:

/* Line 1455 of yacc.c  */
#line 12492 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, (yyvsp[(1) - (3)].lex_str).str, "*");
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            sel->with_wild++;
          }
    break;

  case 1930:

/* Line 1455 of yacc.c  */
#line 12501 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ?
                                  NullS : (yyvsp[(1) - (5)].lex_str).str;
            (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                               schema,
                                               (yyvsp[(3) - (5)].lex_str).str,"*");
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
            sel->with_wild++;
          }
    break;

  case 1931:

/* Line 1455 of yacc.c  */
#line 12515 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1932:

/* Line 1455 of yacc.c  */
#line 12520 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_variable_t *spv;
            sp_pcontext *spc = lex->spcont;
            if (spc && (spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              /* We're compiling a stored procedure and found a variable */
              if (! lex->parsing_options.allows_variable)
              {
                my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
                MYSQL_YYABORT;
              }

              Item_splocal *splocal;
              splocal= new (thd->mem_root)
                         Item_splocal((yyvsp[(1) - (1)].lex_str), spv->offset, spv->type,
                                      lip->get_tok_start_prev() - lex->sphead->m_tmp_query,
                                      lip->get_tok_end() - lip->get_tok_start_prev());
              if (splocal == NULL)
                MYSQL_YYABORT;
#ifndef DBUG_OFF
              splocal->m_sp= lex->sphead;
#endif
              (yyval.item)= splocal;
              lex->safe_to_cache_query=0;
            }
            else
            {
              SELECT_LEX *sel=Select;
              if ((sel->parsing_place != IN_HAVING) ||
                  (sel->get_in_sum_expr() > 0))
              {
                (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                   NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
              }
              else
              {
                (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                                 NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
              }
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1933:

/* Line 1455 of yacc.c  */
#line 12565 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1934:

/* Line 1455 of yacc.c  */
#line 12570 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            SELECT_LEX *sel=Select;
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1935:

/* Line 1455 of yacc.c  */
#line 12586 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1936:

/* Line 1455 of yacc.c  */
#line 12591 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;

            /*
              FIXME This will work ok in simple_ident_nospvar case because
              we can't meet simple_ident_nospvar in trigger now. But it
              should be changed in future.
            */
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") ||
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              Item_trigger_field *trg_fld;
              bool new_row= ((yyvsp[(1) - (3)].lex_str).str[0]=='N' || (yyvsp[(1) - (3)].lex_str).str[0]=='n');

              if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
                  !new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
                MYSQL_YYABORT;
              }

              if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
                  new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
                MYSQL_YYABORT;
              }

              DBUG_ASSERT(!new_row ||
                          (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                           lex->trg_chistics.event == TRG_EVENT_UPDATE));
              const bool read_only=
                !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
              trg_fld= new (thd->mem_root)
                         Item_trigger_field(Lex->current_context(),
                                            new_row ?
                                              Item_trigger_field::NEW_ROW:
                                              Item_trigger_field::OLD_ROW,
                                            (yyvsp[(3) - (3)].lex_str).str,
                                            SELECT_ACL,
                                            read_only);
              if (trg_fld == NULL)
                MYSQL_YYABORT;

              /*
                Let us add this item to list of all Item_trigger_field objects
                in trigger.
              */
              lex->trg_table_fields.link_in_list(trg_fld,
                                                 &trg_fld->next_trg_field);

              (yyval.item)= trg_fld;
            }
            else
            {
              SELECT_LEX *sel= lex->current_select;
              if (sel->no_table_names_allowed)
              {
                my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                         MYF(0), (yyvsp[(1) - (3)].lex_str).str, thd->where);
              }
              if ((sel->parsing_place != IN_HAVING) ||
                  (sel->get_in_sum_expr() > 0))
              {
                (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                   NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
              }
              else
              {
                (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                                 NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
              }
              if ((yyval.item) == NULL)
                MYSQL_YYABORT;
            }
          }
    break;

  case 1937:

/* Line 1455 of yacc.c  */
#line 12669 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(2) - (4)].lex_str).str, thd->where);
            }
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);

            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1938:

/* Line 1455 of yacc.c  */
#line 12693 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            const char* schema= (thd->client_capabilities & CLIENT_NO_SCHEMA ?
                                 NullS : (yyvsp[(1) - (5)].lex_str).str);
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(3) - (5)].lex_str).str, thd->where);
            }
            if ((sel->parsing_place != IN_HAVING) ||
                (sel->get_in_sum_expr() > 0))
            {
              (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
                                                 schema,
                                                 (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
            }
            else
            {
              (yyval.item)= new (thd->mem_root) Item_ref(Lex->current_context(),
                                               schema,
                                               (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
            }
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1939:

/* Line 1455 of yacc.c  */
#line 12722 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1940:

/* Line 1455 of yacc.c  */
#line 12724 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            TABLE_LIST *table= Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (5)].lex_str).str, table->db))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (my_strcasecmp(table_alias_charset, (yyvsp[(3) - (5)].lex_str).str,
                              table->table_name))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 1941:

/* Line 1455 of yacc.c  */
#line 12740 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            TABLE_LIST *table= Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (3)].lex_str).str, table->alias))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 1942:

/* Line 1455 of yacc.c  */
#line 12749 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);}
    break;

  case 1943:

/* Line 1455 of yacc.c  */
#line 12754 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1944:

/* Line 1455 of yacc.c  */
#line 12760 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.table)= new Table_ident(thd, (yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1945:

/* Line 1455 of yacc.c  */
#line 12766 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /* For Delphi */
            (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1946:

/* Line 1455 of yacc.c  */
#line 12776 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.table)= new Table_ident((yyvsp[(1) - (2)].lex_str));
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1947:

/* Line 1455 of yacc.c  */
#line 12782 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.table)= new Table_ident(thd, (yyvsp[(1) - (4)].lex_str),(yyvsp[(3) - (4)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1948:

/* Line 1455 of yacc.c  */
#line 12791 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX_STRING db={(char*) any_db,3};
            (yyval.table)= new Table_ident(thd, db,(yyvsp[(1) - (1)].lex_str),0);
            if ((yyval.table) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 1949:

/* Line 1455 of yacc.c  */
#line 12800 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 1950:

/* Line 1455 of yacc.c  */
#line 12802 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (thd->charset_is_system_charset)
            {
              CHARSET_INFO *cs= system_charset_info;
              int dummy_error;
              uint wlen= cs->cset->well_formed_len(cs, (yyvsp[(1) - (1)].lex_str).str,
                                                   (yyvsp[(1) - (1)].lex_str).str+(yyvsp[(1) - (1)].lex_str).length,
                                                   (yyvsp[(1) - (1)].lex_str).length, &dummy_error);
              if (wlen < (yyvsp[(1) - (1)].lex_str).length)
              {
                ErrConvString err((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, &my_charset_bin);
                my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
                         cs->csname, err.ptr());
                MYSQL_YYABORT;
              }
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            }
            else
            {
              if (thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1951:

/* Line 1455 of yacc.c  */
#line 12830 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (thd->charset_is_system_charset)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1952:

/* Line 1455 of yacc.c  */
#line 12844 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (thd->charset_is_collation_connection)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            } 
          }
    break;

  case 1953:

/* Line 1455 of yacc.c  */
#line 12858 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (thd->charset_is_character_set_filesystem)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
            {
              if (thd->convert_string(&(yyval.lex_str),
                                      thd->variables.character_set_filesystem,
                                      (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset()))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1954:

/* Line 1455 of yacc.c  */
#line 12872 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1955:

/* Line 1455 of yacc.c  */
#line 12874 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            if ((yyval.lex_str).str == NULL)
              MYSQL_YYABORT;
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1956:

/* Line 1455 of yacc.c  */
#line 12883 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1957:

/* Line 1455 of yacc.c  */
#line 12885 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            if ((yyval.lex_str).str == NULL)
              MYSQL_YYABORT;
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1958:

/* Line 1455 of yacc.c  */
#line 12894 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1959:

/* Line 1455 of yacc.c  */
#line 12895 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1960:

/* Line 1455 of yacc.c  */
#line 12896 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1961:

/* Line 1455 of yacc.c  */
#line 12901 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (1)].lex_str);
            (yyval.lex_user)->host.str= (char *) "%";
            (yyval.lex_user)->host.length= 1;
            (yyval.lex_user)->password= null_lex_str; 
            (yyval.lex_user)->plugin= empty_lex_str;
            (yyval.lex_user)->auth= empty_lex_str;

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         username_char_length,
                                         system_charset_info, 0))
              MYSQL_YYABORT;
          }
    break;

  case 1962:

/* Line 1455 of yacc.c  */
#line 12917 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (3)].lex_str); (yyval.lex_user)->host=(yyvsp[(3) - (3)].lex_str);
            (yyval.lex_user)->password= null_lex_str; 
            (yyval.lex_user)->plugin= empty_lex_str;
            (yyval.lex_user)->auth= empty_lex_str;

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         username_char_length,
                                         system_charset_info, 0) ||
                check_host_name(&(yyval.lex_user)->host))
              MYSQL_YYABORT;
            /*
              Convert hostname part of username to lowercase.
              It's OK to use in-place lowercase as long as
              the character set is utf8.
            */
            my_casedn_str(system_charset_info, (yyval.lex_user)->host.str);
          }
    break;

  case 1963:

/* Line 1455 of yacc.c  */
#line 12938 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            /* 
              empty LEX_USER means current_user and 
              will be handled in the  get_current_user() function
              later
            */
            bzero((yyval.lex_user), sizeof(LEX_USER));
          }
    break;

  case 1964:

/* Line 1455 of yacc.c  */
#line 12952 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1965:

/* Line 1455 of yacc.c  */
#line 12953 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1966:

/* Line 1455 of yacc.c  */
#line 12954 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1967:

/* Line 1455 of yacc.c  */
#line 12955 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1968:

/* Line 1455 of yacc.c  */
#line 12956 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1969:

/* Line 1455 of yacc.c  */
#line 12957 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1970:

/* Line 1455 of yacc.c  */
#line 12958 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1971:

/* Line 1455 of yacc.c  */
#line 12959 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1972:

/* Line 1455 of yacc.c  */
#line 12960 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1973:

/* Line 1455 of yacc.c  */
#line 12961 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1974:

/* Line 1455 of yacc.c  */
#line 12962 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1975:

/* Line 1455 of yacc.c  */
#line 12963 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1976:

/* Line 1455 of yacc.c  */
#line 12964 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1977:

/* Line 1455 of yacc.c  */
#line 12965 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1978:

/* Line 1455 of yacc.c  */
#line 12966 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1979:

/* Line 1455 of yacc.c  */
#line 12967 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1980:

/* Line 1455 of yacc.c  */
#line 12968 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1981:

/* Line 1455 of yacc.c  */
#line 12969 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1982:

/* Line 1455 of yacc.c  */
#line 12970 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1983:

/* Line 1455 of yacc.c  */
#line 12971 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1984:

/* Line 1455 of yacc.c  */
#line 12972 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1985:

/* Line 1455 of yacc.c  */
#line 12973 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1986:

/* Line 1455 of yacc.c  */
#line 12974 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1987:

/* Line 1455 of yacc.c  */
#line 12975 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1988:

/* Line 1455 of yacc.c  */
#line 12976 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1989:

/* Line 1455 of yacc.c  */
#line 12977 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1990:

/* Line 1455 of yacc.c  */
#line 12978 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1991:

/* Line 1455 of yacc.c  */
#line 12979 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1992:

/* Line 1455 of yacc.c  */
#line 12980 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1993:

/* Line 1455 of yacc.c  */
#line 12981 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1994:

/* Line 1455 of yacc.c  */
#line 12982 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1995:

/* Line 1455 of yacc.c  */
#line 12983 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1996:

/* Line 1455 of yacc.c  */
#line 12984 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1997:

/* Line 1455 of yacc.c  */
#line 12985 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1998:

/* Line 1455 of yacc.c  */
#line 12986 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 1999:

/* Line 1455 of yacc.c  */
#line 12987 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2000:

/* Line 1455 of yacc.c  */
#line 12988 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2001:

/* Line 1455 of yacc.c  */
#line 12989 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2002:

/* Line 1455 of yacc.c  */
#line 12990 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2003:

/* Line 1455 of yacc.c  */
#line 12991 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2004:

/* Line 1455 of yacc.c  */
#line 12992 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2005:

/* Line 1455 of yacc.c  */
#line 12993 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2006:

/* Line 1455 of yacc.c  */
#line 12994 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2007:

/* Line 1455 of yacc.c  */
#line 12995 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2008:

/* Line 1455 of yacc.c  */
#line 12996 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2009:

/* Line 1455 of yacc.c  */
#line 12997 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2010:

/* Line 1455 of yacc.c  */
#line 12998 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2011:

/* Line 1455 of yacc.c  */
#line 12999 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2012:

/* Line 1455 of yacc.c  */
#line 13000 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2013:

/* Line 1455 of yacc.c  */
#line 13001 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2014:

/* Line 1455 of yacc.c  */
#line 13002 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2015:

/* Line 1455 of yacc.c  */
#line 13003 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2016:

/* Line 1455 of yacc.c  */
#line 13004 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2017:

/* Line 1455 of yacc.c  */
#line 13005 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2018:

/* Line 1455 of yacc.c  */
#line 13006 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2019:

/* Line 1455 of yacc.c  */
#line 13007 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2020:

/* Line 1455 of yacc.c  */
#line 13008 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2021:

/* Line 1455 of yacc.c  */
#line 13009 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2022:

/* Line 1455 of yacc.c  */
#line 13010 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2023:

/* Line 1455 of yacc.c  */
#line 13020 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2024:

/* Line 1455 of yacc.c  */
#line 13021 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2025:

/* Line 1455 of yacc.c  */
#line 13022 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2026:

/* Line 1455 of yacc.c  */
#line 13023 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2027:

/* Line 1455 of yacc.c  */
#line 13024 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2028:

/* Line 1455 of yacc.c  */
#line 13025 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2029:

/* Line 1455 of yacc.c  */
#line 13026 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2030:

/* Line 1455 of yacc.c  */
#line 13027 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2031:

/* Line 1455 of yacc.c  */
#line 13028 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2032:

/* Line 1455 of yacc.c  */
#line 13029 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2033:

/* Line 1455 of yacc.c  */
#line 13030 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2034:

/* Line 1455 of yacc.c  */
#line 13031 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2035:

/* Line 1455 of yacc.c  */
#line 13032 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2036:

/* Line 1455 of yacc.c  */
#line 13033 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2037:

/* Line 1455 of yacc.c  */
#line 13034 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2038:

/* Line 1455 of yacc.c  */
#line 13035 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2039:

/* Line 1455 of yacc.c  */
#line 13036 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2040:

/* Line 1455 of yacc.c  */
#line 13037 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2041:

/* Line 1455 of yacc.c  */
#line 13038 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2042:

/* Line 1455 of yacc.c  */
#line 13039 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2043:

/* Line 1455 of yacc.c  */
#line 13040 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2044:

/* Line 1455 of yacc.c  */
#line 13041 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2045:

/* Line 1455 of yacc.c  */
#line 13042 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2046:

/* Line 1455 of yacc.c  */
#line 13043 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2047:

/* Line 1455 of yacc.c  */
#line 13044 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2048:

/* Line 1455 of yacc.c  */
#line 13045 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2049:

/* Line 1455 of yacc.c  */
#line 13046 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2050:

/* Line 1455 of yacc.c  */
#line 13047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2051:

/* Line 1455 of yacc.c  */
#line 13048 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2052:

/* Line 1455 of yacc.c  */
#line 13049 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2053:

/* Line 1455 of yacc.c  */
#line 13050 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2054:

/* Line 1455 of yacc.c  */
#line 13051 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2055:

/* Line 1455 of yacc.c  */
#line 13052 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2056:

/* Line 1455 of yacc.c  */
#line 13053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2057:

/* Line 1455 of yacc.c  */
#line 13054 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2058:

/* Line 1455 of yacc.c  */
#line 13055 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2059:

/* Line 1455 of yacc.c  */
#line 13056 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2060:

/* Line 1455 of yacc.c  */
#line 13057 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2061:

/* Line 1455 of yacc.c  */
#line 13058 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2062:

/* Line 1455 of yacc.c  */
#line 13059 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2063:

/* Line 1455 of yacc.c  */
#line 13060 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2064:

/* Line 1455 of yacc.c  */
#line 13061 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2065:

/* Line 1455 of yacc.c  */
#line 13062 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2066:

/* Line 1455 of yacc.c  */
#line 13063 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2067:

/* Line 1455 of yacc.c  */
#line 13064 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2068:

/* Line 1455 of yacc.c  */
#line 13065 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2069:

/* Line 1455 of yacc.c  */
#line 13066 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2070:

/* Line 1455 of yacc.c  */
#line 13067 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2071:

/* Line 1455 of yacc.c  */
#line 13068 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2072:

/* Line 1455 of yacc.c  */
#line 13069 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2073:

/* Line 1455 of yacc.c  */
#line 13070 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2074:

/* Line 1455 of yacc.c  */
#line 13071 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2075:

/* Line 1455 of yacc.c  */
#line 13072 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2076:

/* Line 1455 of yacc.c  */
#line 13073 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2077:

/* Line 1455 of yacc.c  */
#line 13074 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2078:

/* Line 1455 of yacc.c  */
#line 13075 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2079:

/* Line 1455 of yacc.c  */
#line 13076 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2080:

/* Line 1455 of yacc.c  */
#line 13077 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2081:

/* Line 1455 of yacc.c  */
#line 13078 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2082:

/* Line 1455 of yacc.c  */
#line 13079 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2083:

/* Line 1455 of yacc.c  */
#line 13080 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2084:

/* Line 1455 of yacc.c  */
#line 13081 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2085:

/* Line 1455 of yacc.c  */
#line 13082 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2086:

/* Line 1455 of yacc.c  */
#line 13083 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2087:

/* Line 1455 of yacc.c  */
#line 13084 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2088:

/* Line 1455 of yacc.c  */
#line 13085 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2089:

/* Line 1455 of yacc.c  */
#line 13086 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2090:

/* Line 1455 of yacc.c  */
#line 13087 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2091:

/* Line 1455 of yacc.c  */
#line 13088 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2092:

/* Line 1455 of yacc.c  */
#line 13089 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2093:

/* Line 1455 of yacc.c  */
#line 13090 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2094:

/* Line 1455 of yacc.c  */
#line 13091 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2095:

/* Line 1455 of yacc.c  */
#line 13092 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2096:

/* Line 1455 of yacc.c  */
#line 13093 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2097:

/* Line 1455 of yacc.c  */
#line 13094 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2098:

/* Line 1455 of yacc.c  */
#line 13095 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2099:

/* Line 1455 of yacc.c  */
#line 13096 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2100:

/* Line 1455 of yacc.c  */
#line 13097 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2101:

/* Line 1455 of yacc.c  */
#line 13098 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2102:

/* Line 1455 of yacc.c  */
#line 13099 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2103:

/* Line 1455 of yacc.c  */
#line 13100 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2104:

/* Line 1455 of yacc.c  */
#line 13101 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2105:

/* Line 1455 of yacc.c  */
#line 13102 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2106:

/* Line 1455 of yacc.c  */
#line 13103 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2107:

/* Line 1455 of yacc.c  */
#line 13104 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2108:

/* Line 1455 of yacc.c  */
#line 13105 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2109:

/* Line 1455 of yacc.c  */
#line 13106 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2110:

/* Line 1455 of yacc.c  */
#line 13107 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2111:

/* Line 1455 of yacc.c  */
#line 13108 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2112:

/* Line 1455 of yacc.c  */
#line 13109 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2113:

/* Line 1455 of yacc.c  */
#line 13110 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2114:

/* Line 1455 of yacc.c  */
#line 13111 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2115:

/* Line 1455 of yacc.c  */
#line 13112 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2116:

/* Line 1455 of yacc.c  */
#line 13113 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2117:

/* Line 1455 of yacc.c  */
#line 13114 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2118:

/* Line 1455 of yacc.c  */
#line 13115 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2119:

/* Line 1455 of yacc.c  */
#line 13116 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2120:

/* Line 1455 of yacc.c  */
#line 13117 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2121:

/* Line 1455 of yacc.c  */
#line 13118 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2122:

/* Line 1455 of yacc.c  */
#line 13119 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2123:

/* Line 1455 of yacc.c  */
#line 13120 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2124:

/* Line 1455 of yacc.c  */
#line 13121 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2125:

/* Line 1455 of yacc.c  */
#line 13122 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2126:

/* Line 1455 of yacc.c  */
#line 13123 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2127:

/* Line 1455 of yacc.c  */
#line 13124 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2128:

/* Line 1455 of yacc.c  */
#line 13125 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2129:

/* Line 1455 of yacc.c  */
#line 13126 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2130:

/* Line 1455 of yacc.c  */
#line 13127 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2131:

/* Line 1455 of yacc.c  */
#line 13128 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2132:

/* Line 1455 of yacc.c  */
#line 13129 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2133:

/* Line 1455 of yacc.c  */
#line 13130 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2134:

/* Line 1455 of yacc.c  */
#line 13131 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2135:

/* Line 1455 of yacc.c  */
#line 13132 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2136:

/* Line 1455 of yacc.c  */
#line 13133 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2137:

/* Line 1455 of yacc.c  */
#line 13134 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2138:

/* Line 1455 of yacc.c  */
#line 13135 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2139:

/* Line 1455 of yacc.c  */
#line 13136 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2140:

/* Line 1455 of yacc.c  */
#line 13137 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2141:

/* Line 1455 of yacc.c  */
#line 13138 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2142:

/* Line 1455 of yacc.c  */
#line 13139 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2143:

/* Line 1455 of yacc.c  */
#line 13140 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2144:

/* Line 1455 of yacc.c  */
#line 13141 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2145:

/* Line 1455 of yacc.c  */
#line 13142 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2146:

/* Line 1455 of yacc.c  */
#line 13143 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2147:

/* Line 1455 of yacc.c  */
#line 13144 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2148:

/* Line 1455 of yacc.c  */
#line 13145 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2149:

/* Line 1455 of yacc.c  */
#line 13146 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2150:

/* Line 1455 of yacc.c  */
#line 13147 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2151:

/* Line 1455 of yacc.c  */
#line 13148 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2152:

/* Line 1455 of yacc.c  */
#line 13149 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2153:

/* Line 1455 of yacc.c  */
#line 13150 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2154:

/* Line 1455 of yacc.c  */
#line 13151 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2155:

/* Line 1455 of yacc.c  */
#line 13152 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2156:

/* Line 1455 of yacc.c  */
#line 13153 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2157:

/* Line 1455 of yacc.c  */
#line 13154 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2158:

/* Line 1455 of yacc.c  */
#line 13155 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2159:

/* Line 1455 of yacc.c  */
#line 13156 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2160:

/* Line 1455 of yacc.c  */
#line 13157 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2161:

/* Line 1455 of yacc.c  */
#line 13158 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2162:

/* Line 1455 of yacc.c  */
#line 13159 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2163:

/* Line 1455 of yacc.c  */
#line 13160 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2164:

/* Line 1455 of yacc.c  */
#line 13161 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2165:

/* Line 1455 of yacc.c  */
#line 13162 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2166:

/* Line 1455 of yacc.c  */
#line 13163 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2167:

/* Line 1455 of yacc.c  */
#line 13164 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2168:

/* Line 1455 of yacc.c  */
#line 13165 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2169:

/* Line 1455 of yacc.c  */
#line 13166 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2170:

/* Line 1455 of yacc.c  */
#line 13167 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2171:

/* Line 1455 of yacc.c  */
#line 13168 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2172:

/* Line 1455 of yacc.c  */
#line 13169 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2173:

/* Line 1455 of yacc.c  */
#line 13170 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2174:

/* Line 1455 of yacc.c  */
#line 13171 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2175:

/* Line 1455 of yacc.c  */
#line 13172 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2176:

/* Line 1455 of yacc.c  */
#line 13173 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2177:

/* Line 1455 of yacc.c  */
#line 13174 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2178:

/* Line 1455 of yacc.c  */
#line 13175 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2179:

/* Line 1455 of yacc.c  */
#line 13176 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2180:

/* Line 1455 of yacc.c  */
#line 13177 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2181:

/* Line 1455 of yacc.c  */
#line 13178 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2182:

/* Line 1455 of yacc.c  */
#line 13179 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2183:

/* Line 1455 of yacc.c  */
#line 13180 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2184:

/* Line 1455 of yacc.c  */
#line 13181 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2185:

/* Line 1455 of yacc.c  */
#line 13182 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2186:

/* Line 1455 of yacc.c  */
#line 13183 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2187:

/* Line 1455 of yacc.c  */
#line 13184 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2188:

/* Line 1455 of yacc.c  */
#line 13185 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2189:

/* Line 1455 of yacc.c  */
#line 13186 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2190:

/* Line 1455 of yacc.c  */
#line 13187 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2191:

/* Line 1455 of yacc.c  */
#line 13188 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2192:

/* Line 1455 of yacc.c  */
#line 13189 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2193:

/* Line 1455 of yacc.c  */
#line 13190 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2194:

/* Line 1455 of yacc.c  */
#line 13191 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2195:

/* Line 1455 of yacc.c  */
#line 13192 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2196:

/* Line 1455 of yacc.c  */
#line 13193 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2197:

/* Line 1455 of yacc.c  */
#line 13194 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2198:

/* Line 1455 of yacc.c  */
#line 13195 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2199:

/* Line 1455 of yacc.c  */
#line 13196 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2200:

/* Line 1455 of yacc.c  */
#line 13197 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2201:

/* Line 1455 of yacc.c  */
#line 13198 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2202:

/* Line 1455 of yacc.c  */
#line 13199 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2203:

/* Line 1455 of yacc.c  */
#line 13200 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2204:

/* Line 1455 of yacc.c  */
#line 13201 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2205:

/* Line 1455 of yacc.c  */
#line 13202 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2206:

/* Line 1455 of yacc.c  */
#line 13203 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2207:

/* Line 1455 of yacc.c  */
#line 13204 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2208:

/* Line 1455 of yacc.c  */
#line 13205 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2209:

/* Line 1455 of yacc.c  */
#line 13206 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2210:

/* Line 1455 of yacc.c  */
#line 13207 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2211:

/* Line 1455 of yacc.c  */
#line 13208 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2212:

/* Line 1455 of yacc.c  */
#line 13209 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2213:

/* Line 1455 of yacc.c  */
#line 13210 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2214:

/* Line 1455 of yacc.c  */
#line 13211 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2215:

/* Line 1455 of yacc.c  */
#line 13212 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2216:

/* Line 1455 of yacc.c  */
#line 13213 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2217:

/* Line 1455 of yacc.c  */
#line 13214 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2218:

/* Line 1455 of yacc.c  */
#line 13215 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2219:

/* Line 1455 of yacc.c  */
#line 13216 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2220:

/* Line 1455 of yacc.c  */
#line 13217 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2221:

/* Line 1455 of yacc.c  */
#line 13218 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2222:

/* Line 1455 of yacc.c  */
#line 13219 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2223:

/* Line 1455 of yacc.c  */
#line 13220 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2224:

/* Line 1455 of yacc.c  */
#line 13221 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2225:

/* Line 1455 of yacc.c  */
#line 13222 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2226:

/* Line 1455 of yacc.c  */
#line 13223 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2227:

/* Line 1455 of yacc.c  */
#line 13224 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2228:

/* Line 1455 of yacc.c  */
#line 13225 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2229:

/* Line 1455 of yacc.c  */
#line 13226 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2230:

/* Line 1455 of yacc.c  */
#line 13227 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2231:

/* Line 1455 of yacc.c  */
#line 13228 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2232:

/* Line 1455 of yacc.c  */
#line 13229 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2233:

/* Line 1455 of yacc.c  */
#line 13230 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2234:

/* Line 1455 of yacc.c  */
#line 13231 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2235:

/* Line 1455 of yacc.c  */
#line 13232 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2236:

/* Line 1455 of yacc.c  */
#line 13233 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2237:

/* Line 1455 of yacc.c  */
#line 13234 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2238:

/* Line 1455 of yacc.c  */
#line 13235 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2239:

/* Line 1455 of yacc.c  */
#line 13236 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2240:

/* Line 1455 of yacc.c  */
#line 13237 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2241:

/* Line 1455 of yacc.c  */
#line 13238 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2242:

/* Line 1455 of yacc.c  */
#line 13239 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2243:

/* Line 1455 of yacc.c  */
#line 13240 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2244:

/* Line 1455 of yacc.c  */
#line 13241 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2245:

/* Line 1455 of yacc.c  */
#line 13242 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2246:

/* Line 1455 of yacc.c  */
#line 13243 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2247:

/* Line 1455 of yacc.c  */
#line 13244 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2248:

/* Line 1455 of yacc.c  */
#line 13245 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2249:

/* Line 1455 of yacc.c  */
#line 13246 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2250:

/* Line 1455 of yacc.c  */
#line 13247 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2251:

/* Line 1455 of yacc.c  */
#line 13248 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2252:

/* Line 1455 of yacc.c  */
#line 13249 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2253:

/* Line 1455 of yacc.c  */
#line 13250 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2254:

/* Line 1455 of yacc.c  */
#line 13251 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2255:

/* Line 1455 of yacc.c  */
#line 13252 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2256:

/* Line 1455 of yacc.c  */
#line 13253 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2257:

/* Line 1455 of yacc.c  */
#line 13254 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2258:

/* Line 1455 of yacc.c  */
#line 13255 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2259:

/* Line 1455 of yacc.c  */
#line 13256 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2260:

/* Line 1455 of yacc.c  */
#line 13257 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2261:

/* Line 1455 of yacc.c  */
#line 13258 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2262:

/* Line 1455 of yacc.c  */
#line 13259 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2263:

/* Line 1455 of yacc.c  */
#line 13260 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2264:

/* Line 1455 of yacc.c  */
#line 13261 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2265:

/* Line 1455 of yacc.c  */
#line 13262 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2266:

/* Line 1455 of yacc.c  */
#line 13263 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2267:

/* Line 1455 of yacc.c  */
#line 13264 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2268:

/* Line 1455 of yacc.c  */
#line 13265 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2269:

/* Line 1455 of yacc.c  */
#line 13266 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2270:

/* Line 1455 of yacc.c  */
#line 13267 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2271:

/* Line 1455 of yacc.c  */
#line 13268 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2272:

/* Line 1455 of yacc.c  */
#line 13269 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2273:

/* Line 1455 of yacc.c  */
#line 13270 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2274:

/* Line 1455 of yacc.c  */
#line 13271 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2275:

/* Line 1455 of yacc.c  */
#line 13272 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2276:

/* Line 1455 of yacc.c  */
#line 13273 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2277:

/* Line 1455 of yacc.c  */
#line 13274 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2278:

/* Line 1455 of yacc.c  */
#line 13275 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2279:

/* Line 1455 of yacc.c  */
#line 13276 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2280:

/* Line 1455 of yacc.c  */
#line 13277 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2281:

/* Line 1455 of yacc.c  */
#line 13278 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2282:

/* Line 1455 of yacc.c  */
#line 13279 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2283:

/* Line 1455 of yacc.c  */
#line 13280 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2284:

/* Line 1455 of yacc.c  */
#line 13281 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2285:

/* Line 1455 of yacc.c  */
#line 13282 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2286:

/* Line 1455 of yacc.c  */
#line 13283 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2287:

/* Line 1455 of yacc.c  */
#line 13284 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2288:

/* Line 1455 of yacc.c  */
#line 13285 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2289:

/* Line 1455 of yacc.c  */
#line 13286 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2290:

/* Line 1455 of yacc.c  */
#line 13287 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2291:

/* Line 1455 of yacc.c  */
#line 13288 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2292:

/* Line 1455 of yacc.c  */
#line 13289 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2293:

/* Line 1455 of yacc.c  */
#line 13290 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2294:

/* Line 1455 of yacc.c  */
#line 13291 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2295:

/* Line 1455 of yacc.c  */
#line 13292 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2296:

/* Line 1455 of yacc.c  */
#line 13293 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2297:

/* Line 1455 of yacc.c  */
#line 13294 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2298:

/* Line 1455 of yacc.c  */
#line 13295 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2299:

/* Line 1455 of yacc.c  */
#line 13296 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2300:

/* Line 1455 of yacc.c  */
#line 13297 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2301:

/* Line 1455 of yacc.c  */
#line 13298 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2302:

/* Line 1455 of yacc.c  */
#line 13299 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2303:

/* Line 1455 of yacc.c  */
#line 13300 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2304:

/* Line 1455 of yacc.c  */
#line 13301 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2305:

/* Line 1455 of yacc.c  */
#line 13302 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2306:

/* Line 1455 of yacc.c  */
#line 13303 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2307:

/* Line 1455 of yacc.c  */
#line 13304 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2308:

/* Line 1455 of yacc.c  */
#line 13305 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2309:

/* Line 1455 of yacc.c  */
#line 13306 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2310:

/* Line 1455 of yacc.c  */
#line 13307 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2311:

/* Line 1455 of yacc.c  */
#line 13308 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2312:

/* Line 1455 of yacc.c  */
#line 13309 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2313:

/* Line 1455 of yacc.c  */
#line 13310 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2314:

/* Line 1455 of yacc.c  */
#line 13311 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2315:

/* Line 1455 of yacc.c  */
#line 13318 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SET_OPTION;
            mysql_init_select(lex);
            lex->option_type=OPT_SESSION;
            lex->var_list.empty();
            lex->one_shot_set= 0;
            lex->autocommit= 0;
          }
    break;

  case 2316:

/* Line 1455 of yacc.c  */
#line 13328 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2317:

/* Line 1455 of yacc.c  */
#line 13332 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2318:

/* Line 1455 of yacc.c  */
#line 13333 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2321:

/* Line 1455 of yacc.c  */
#line 13342 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            if (lex->sphead)
            {
              /*
                If we are in SP we want have own LEX for each assignment.
                This is mostly because it is hard for several sp_instr_set
                and sp_instr_set_trigger instructions share one LEX.
                (Well, it is theoretically possible but adds some extra
                overhead on preparation for execution stage and IMO less
                robust).

                QQ: May be we should simply prohibit group assignments in SP?
              */
              lex->sphead->reset_lex(thd);
              lex= thd->lex;

              /* Set new LEX as if we at start of set rule. */
              lex->sql_command= SQLCOM_SET_OPTION;
              mysql_init_select(lex);
              lex->option_type=OPT_SESSION;
              lex->var_list.empty();
              lex->one_shot_set= 0;
              lex->autocommit= 0;
              lex->sphead->m_tmp_query= lip->get_tok_start();
            }
          }
    break;

  case 2322:

/* Line 1455 of yacc.c  */
#line 13372 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            if (lex->sphead)
            {
              sp_head *sp= lex->sphead;

              if (!lex->var_list.is_empty())
              {
                /*
                  We have assignment to user or system variable or
                  option setting, so we should construct sp_instr_stmt
                  for it.
                */
                LEX_STRING qbuff;
                sp_instr_stmt *i;

                if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
                                           lex)))
                  MYSQL_YYABORT;

                /*
                  Extract the query statement from the tokenizer.  The
                  end is either lip->ptr, if there was no lookahead,
                  lip->tok_end otherwise.
                */
                if (yychar == YYEMPTY)
                  qbuff.length= lip->get_ptr() - sp->m_tmp_query;
                else
                  qbuff.length= lip->get_tok_end() - sp->m_tmp_query;

                if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
                                                    qbuff.length + 5)))
                  MYSQL_YYABORT;

                strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
                        qbuff.length);
                qbuff.length+= 4;
                i->m_query= qbuff;
                if (sp->add_instr(i))
                  MYSQL_YYABORT;
              }
              if (lex->sphead->restore_lex(thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 2323:

/* Line 1455 of yacc.c  */
#line 13422 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2324:

/* Line 1455 of yacc.c  */
#line 13423 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2325:

/* Line 1455 of yacc.c  */
#line 13424 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2326:

/* Line 1455 of yacc.c  */
#line 13425 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2327:

/* Line 1455 of yacc.c  */
#line 13429 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= OPT_DEFAULT; }
    break;

  case 2328:

/* Line 1455 of yacc.c  */
#line 13430 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; }
    break;

  case 2329:

/* Line 1455 of yacc.c  */
#line 13434 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2330:

/* Line 1455 of yacc.c  */
#line 13435 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2331:

/* Line 1455 of yacc.c  */
#line 13436 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2332:

/* Line 1455 of yacc.c  */
#line 13437 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2333:

/* Line 1455 of yacc.c  */
#line 13441 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_DEFAULT; }
    break;

  case 2334:

/* Line 1455 of yacc.c  */
#line 13442 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2335:

/* Line 1455 of yacc.c  */
#line 13443 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2336:

/* Line 1455 of yacc.c  */
#line 13444 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2339:

/* Line 1455 of yacc.c  */
#line 13454 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            LEX_STRING *name= &(yyvsp[(2) - (4)].variable).base_name;

            if ((yyvsp[(2) - (4)].variable).var == trg_new_row_fake_var)
            {
              /* We are in trigger and assigning value to field of new row */
              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              if (set_trigger_new_row(thd, name, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
            else if ((yyvsp[(2) - (4)].variable).var)
            {
              if ((yyvsp[(1) - (4)].var_type))
                lex->option_type= (yyvsp[(1) - (4)].var_type);

              /* It is a system variable. */
              if (set_system_variable(thd, &(yyvsp[(2) - (4)].variable), lex->option_type, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
            else
            {
              sp_pcontext *spc= lex->spcont;
              sp_variable_t *spv= spc->find_variable(name);

              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }

              /* It is a local variable. */
              if (set_local_variable(thd, spv, (yyvsp[(4) - (4)].item)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 2340:

/* Line 1455 of yacc.c  */
#line 13495 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->option_type= (yyvsp[(1) - (5)].var_type);
            Item *item= new (thd->mem_root) Item_int((int32) (yyvsp[(5) - (5)].tx_isolation));
            if (item == NULL)
              MYSQL_YYABORT;
            set_var *var= new set_var(lex->option_type,
                                      find_sys_var(thd, "tx_isolation"),
                                      &null_lex_str,
                                      item);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2341:

/* Line 1455 of yacc.c  */
#line 13513 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Item_func_set_user_var *item;
            item= new (thd->mem_root) Item_func_set_user_var((yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].item));
            if (item == NULL)
              MYSQL_YYABORT;
            set_var_user *var= new set_var_user(item);
            if (var == NULL)
              MYSQL_YYABORT;
            Lex->var_list.push_back(var);
          }
    break;

  case 2342:

/* Line 1455 of yacc.c  */
#line 13524 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            struct sys_var_with_base tmp= (yyvsp[(4) - (6)].variable);
            /* Lookup if necessary: must be a system variable. */
            if (tmp.var == NULL)
            {
              if (find_sys_var_null_base(thd, &tmp))
                MYSQL_YYABORT;
            }
            if (set_system_variable(thd, &tmp, (yyvsp[(3) - (6)].var_type), (yyvsp[(6) - (6)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 2343:

/* Line 1455 of yacc.c  */
#line 13536 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            CHARSET_INFO *cs2;
            cs2= (yyvsp[(2) - (2)].charset) ? (yyvsp[(2) - (2)].charset): global_system_variables.character_set_client;
            set_var_collation_client *var;
            var= new set_var_collation_client(cs2,
                                              thd->variables.collation_database,
                                              cs2);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2344:

/* Line 1455 of yacc.c  */
#line 13549 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING names;

            names.str= (char *)"names";
            names.length= 5;
            if (spc && spc->find_variable(&names))
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str);
            else
              my_parse_error(ER(ER_SYNTAX_ERROR));

            MYSQL_YYABORT;
          }
    break;

  case 2345:

/* Line 1455 of yacc.c  */
#line 13564 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            CHARSET_INFO *cs2;
            CHARSET_INFO *cs3;
            cs2= (yyvsp[(2) - (3)].charset) ? (yyvsp[(2) - (3)].charset) : global_system_variables.character_set_client;
            cs3= (yyvsp[(3) - (3)].charset) ? (yyvsp[(3) - (3)].charset) : cs2;
            if (!my_charset_same(cs2, cs3))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       cs3->name, cs2->csname);
              MYSQL_YYABORT;
            }
            set_var_collation_client *var;
            var= new set_var_collation_client(cs3, cs3, cs3);
            if (var == NULL)
              MYSQL_YYABORT;
            lex->var_list.push_back(var);
          }
    break;

  case 2346:

/* Line 1455 of yacc.c  */
#line 13583 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            LEX_USER *user;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING pw;

            pw.str= (char *)"password";
            pw.length= 8;
            if (spc && spc->find_variable(&pw))
            {
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str);
              MYSQL_YYABORT;
            }
            if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
              MYSQL_YYABORT;
            user->host=null_lex_str;
            user->user.str=thd->security_ctx->user;
            set_var_password *var= new set_var_password(user, (yyvsp[(3) - (3)].simple_string));
            if (var == NULL)
              MYSQL_YYABORT;
            thd->lex->var_list.push_back(var);
            thd->lex->autocommit= TRUE;
            if (lex->sphead)
              lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
          }
    break;

  case 2347:

/* Line 1455 of yacc.c  */
#line 13609 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            set_var_password *var= new set_var_password((yyvsp[(3) - (5)].lex_user),(yyvsp[(5) - (5)].simple_string));
            if (var == NULL)
              MYSQL_YYABORT;
            Lex->var_list.push_back(var);
            Lex->autocommit= TRUE;
            if (Lex->sphead)
              Lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
          }
    break;

  case 2348:

/* Line 1455 of yacc.c  */
#line 13622 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            sp_pcontext *spc= thd->lex->spcont;
            sp_variable_t *spv;

            /* Best effort lookup for system variable. */
            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              struct sys_var_with_base tmp= {NULL, (yyvsp[(1) - (1)].lex_str)};

              /* Not an SP local variable */
              if (find_sys_var_null_base(thd, &tmp))
                MYSQL_YYABORT;

              (yyval.variable)= tmp;
            }
            else
            {
              /*
                Possibly an SP local variable (or a shadowed sysvar).
                Will depend on the context of the SET statement.
              */
              (yyval.variable).var= NULL;
              (yyval.variable).base_name= (yyvsp[(1) - (1)].lex_str);
            }
          }
    break;

  case 2349:

/* Line 1455 of yacc.c  */
#line 13648 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (check_reserved_words(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") || 
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              if ((yyvsp[(1) - (3)].lex_str).str[0]=='O' || (yyvsp[(1) - (3)].lex_str).str[0]=='o')
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "OLD", "");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.event == TRG_EVENT_DELETE)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0),
                         "NEW", "on DELETE");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.action_time == TRG_ACTION_AFTER)
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "NEW", "after ");
                MYSQL_YYABORT;
              }
              /* This special combination will denote field of NEW row */
              (yyval.variable).var= trg_new_row_fake_var;
              (yyval.variable).base_name= (yyvsp[(3) - (3)].lex_str);
            }
            else
            {
              sys_var *tmp=find_sys_var(thd, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
              if (!tmp)
                MYSQL_YYABORT;
              if (!tmp->is_struct())
                my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              (yyval.variable).var= tmp;
              (yyval.variable).base_name= (yyvsp[(1) - (3)].lex_str);
            }
          }
    break;

  case 2350:

/* Line 1455 of yacc.c  */
#line 13691 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            sys_var *tmp=find_sys_var(thd, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
            if (!tmp)
              MYSQL_YYABORT;
            if (!tmp->is_struct())
              my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
            (yyval.variable).var= tmp;
            (yyval.variable).base_name.str=    (char*) "default";
            (yyval.variable).base_name.length= 7;
          }
    break;

  case 2351:

/* Line 1455 of yacc.c  */
#line 13704 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
    break;

  case 2352:

/* Line 1455 of yacc.c  */
#line 13705 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
    break;

  case 2353:

/* Line 1455 of yacc.c  */
#line 13706 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
    break;

  case 2354:

/* Line 1455 of yacc.c  */
#line 13707 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
    break;

  case 2355:

/* Line 1455 of yacc.c  */
#line 13711 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str;}
    break;

  case 2356:

/* Line 1455 of yacc.c  */
#line 13713 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? thd->variables.old_passwords ?
              Item_func_old_password::alloc(thd, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
              Item_func_password::alloc(thd, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
              (yyvsp[(3) - (4)].lex_str).str;
            if ((yyval.simple_string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2357:

/* Line 1455 of yacc.c  */
#line 13722 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? Item_func_old_password::alloc(thd, (yyvsp[(3) - (4)].lex_str).str,
                                                          (yyvsp[(3) - (4)].lex_str).length) :
              (yyvsp[(3) - (4)].lex_str).str;
            if ((yyval.simple_string) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2358:

/* Line 1455 of yacc.c  */
#line 13733 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 2359:

/* Line 1455 of yacc.c  */
#line 13734 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.item)=0; }
    break;

  case 2360:

/* Line 1455 of yacc.c  */
#line 13736 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)=new (thd->mem_root) Item_string("ON",  2, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2361:

/* Line 1455 of yacc.c  */
#line 13742 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)=new (thd->mem_root) Item_string("ALL", 3, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2362:

/* Line 1455 of yacc.c  */
#line 13748 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.item)=new (thd->mem_root) Item_string("binary", 6, system_charset_info);
            if ((yyval.item) == NULL)
              MYSQL_YYABORT;
          }
    break;

  case 2363:

/* Line 1455 of yacc.c  */
#line 13759 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_LOCK_TABLES;
          }
    break;

  case 2364:

/* Line 1455 of yacc.c  */
#line 13770 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2369:

/* Line 1455 of yacc.c  */
#line 13785 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            thr_lock_type lock_type= (thr_lock_type) (yyvsp[(3) - (3)].num);
            bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE);
            if (!Select->add_table_to_list(thd, (yyvsp[(1) - (3)].table), (yyvsp[(2) - (3)].lex_str_ptr), 0, lock_type,
                                           (lock_for_write ?
                                            lock_type == TL_WRITE_CONCURRENT_INSERT ?
                                            MDL_SHARED_WRITE :
                                            MDL_SHARED_NO_READ_WRITE :
                                            MDL_SHARED_READ)))
              MYSQL_YYABORT;
          }
    break;

  case 2370:

/* Line 1455 of yacc.c  */
#line 13799 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= TL_READ_NO_INSERT; }
    break;

  case 2371:

/* Line 1455 of yacc.c  */
#line 13800 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= TL_WRITE_DEFAULT; }
    break;

  case 2372:

/* Line 1455 of yacc.c  */
#line 13802 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
          }
    break;

  case 2373:

/* Line 1455 of yacc.c  */
#line 13806 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 2374:

/* Line 1455 of yacc.c  */
#line 13807 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= TL_READ; }
    break;

  case 2375:

/* Line 1455 of yacc.c  */
#line 13812 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_UNLOCK_TABLES;
          }
    break;

  case 2376:

/* Line 1455 of yacc.c  */
#line 13823 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2377:

/* Line 1455 of yacc.c  */
#line 13832 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_OPEN;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (4)].table), (yyvsp[(4) - (4)].lex_str_ptr), 0))
              MYSQL_YYABORT;
          }
    break;

  case 2378:

/* Line 1455 of yacc.c  */
#line 13844 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_CLOSE;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2379:

/* Line 1455 of yacc.c  */
#line 13856 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->expr_allows_subselect= FALSE;
            lex->sql_command = SQLCOM_HA_READ;
            lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
            Item *one= new (thd->mem_root) Item_int((int32) 1);
            if (one == NULL)
              MYSQL_YYABORT;
            lex->current_select->select_limit= one;
            lex->current_select->offset_limit= 0;
            lex->limit_rows_examined= 0;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2380:

/* Line 1455 of yacc.c  */
#line 13876 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->expr_allows_subselect= TRUE;
            /* Stored functions are not supported for HANDLER READ. */
            if (Lex->uses_stored_routines())
            {
              my_error(ER_NOT_SUPPORTED_YET, MYF(0),
                       "stored functions in HANDLER ... READ");
              MYSQL_YYABORT;
            }
          }
    break;

  case 2381:

/* Line 1455 of yacc.c  */
#line 13889 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ident= null_lex_str; }
    break;

  case 2382:

/* Line 1455 of yacc.c  */
#line 13890 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ident= (yyvsp[(1) - (2)].lex_str); }
    break;

  case 2383:

/* Line 1455 of yacc.c  */
#line 13894 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2384:

/* Line 1455 of yacc.c  */
#line 13895 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2385:

/* Line 1455 of yacc.c  */
#line 13899 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2386:

/* Line 1455 of yacc.c  */
#line 13900 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2387:

/* Line 1455 of yacc.c  */
#line 13901 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ha_read_mode = RPREV;  }
    break;

  case 2388:

/* Line 1455 of yacc.c  */
#line 13902 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->ha_read_mode = RLAST;  }
    break;

  case 2389:

/* Line 1455 of yacc.c  */
#line 13904 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->ha_read_mode = RKEY;
            lex->ha_rkey_mode=(yyvsp[(1) - (1)].ha_rkey_mode);
            if (!(lex->insert_list = new List_item))
              MYSQL_YYABORT;
          }
    break;

  case 2390:

/* Line 1455 of yacc.c  */
#line 13912 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2391:

/* Line 1455 of yacc.c  */
#line 13916 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT;   }
    break;

  case 2392:

/* Line 1455 of yacc.c  */
#line 13917 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; }
    break;

  case 2393:

/* Line 1455 of yacc.c  */
#line 13918 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; }
    break;

  case 2394:

/* Line 1455 of yacc.c  */
#line 13919 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY;   }
    break;

  case 2395:

/* Line 1455 of yacc.c  */
#line 13920 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY;  }
    break;

  case 2396:

/* Line 1455 of yacc.c  */
#line 13927 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2397:

/* Line 1455 of yacc.c  */
#line 13932 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= 0;
          }
    break;

  case 2398:

/* Line 1455 of yacc.c  */
#line 13938 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2399:

/* Line 1455 of yacc.c  */
#line 13949 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2400:

/* Line 1455 of yacc.c  */
#line 13960 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_REVOKE_ALL;
          }
    break;

  case 2401:

/* Line 1455 of yacc.c  */
#line 13964 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->users_list.push_front ((yyvsp[(3) - (5)].lex_user));
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_PROXY;
          }
    break;

  case 2402:

/* Line 1455 of yacc.c  */
#line 13974 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2403:

/* Line 1455 of yacc.c  */
#line 13980 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_GRANT;
            lex->type= 0;
          }
    break;

  case 2404:

/* Line 1455 of yacc.c  */
#line 13987 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2405:

/* Line 1455 of yacc.c  */
#line 13999 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2406:

/* Line 1455 of yacc.c  */
#line 14010 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->users_list.push_front ((yyvsp[(3) - (6)].lex_user));
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_PROXY;
          }
    break;

  case 2409:

/* Line 1455 of yacc.c  */
#line 14024 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2410:

/* Line 1455 of yacc.c  */
#line 14026 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            Lex->all_privileges= 1; 
            Lex->grant= GLOBAL_ACLS;
          }
    break;

  case 2415:

/* Line 1455 of yacc.c  */
#line 14044 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->which_columns = SELECT_ACL;}
    break;

  case 2416:

/* Line 1455 of yacc.c  */
#line 14045 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2417:

/* Line 1455 of yacc.c  */
#line 14047 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->which_columns = INSERT_ACL;}
    break;

  case 2418:

/* Line 1455 of yacc.c  */
#line 14048 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2419:

/* Line 1455 of yacc.c  */
#line 14050 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->which_columns = UPDATE_ACL; }
    break;

  case 2420:

/* Line 1455 of yacc.c  */
#line 14051 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2421:

/* Line 1455 of yacc.c  */
#line 14053 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->which_columns = REFERENCES_ACL;}
    break;

  case 2422:

/* Line 1455 of yacc.c  */
#line 14054 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2423:

/* Line 1455 of yacc.c  */
#line 14055 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= DELETE_ACL;}
    break;

  case 2424:

/* Line 1455 of yacc.c  */
#line 14056 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2425:

/* Line 1455 of yacc.c  */
#line 14057 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= INDEX_ACL;}
    break;

  case 2426:

/* Line 1455 of yacc.c  */
#line 14058 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= ALTER_ACL;}
    break;

  case 2427:

/* Line 1455 of yacc.c  */
#line 14059 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= CREATE_ACL;}
    break;

  case 2428:

/* Line 1455 of yacc.c  */
#line 14060 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= DROP_ACL;}
    break;

  case 2429:

/* Line 1455 of yacc.c  */
#line 14061 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= EXECUTE_ACL;}
    break;

  case 2430:

/* Line 1455 of yacc.c  */
#line 14062 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= RELOAD_ACL;}
    break;

  case 2431:

/* Line 1455 of yacc.c  */
#line 14063 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= SHUTDOWN_ACL;}
    break;

  case 2432:

/* Line 1455 of yacc.c  */
#line 14064 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= PROCESS_ACL;}
    break;

  case 2433:

/* Line 1455 of yacc.c  */
#line 14065 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= FILE_ACL;}
    break;

  case 2434:

/* Line 1455 of yacc.c  */
#line 14066 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2435:

/* Line 1455 of yacc.c  */
#line 14067 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= SHOW_DB_ACL;}
    break;

  case 2436:

/* Line 1455 of yacc.c  */
#line 14068 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= SUPER_ACL;}
    break;

  case 2437:

/* Line 1455 of yacc.c  */
#line 14069 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= CREATE_TMP_ACL;}
    break;

  case 2438:

/* Line 1455 of yacc.c  */
#line 14070 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= LOCK_TABLES_ACL; }
    break;

  case 2439:

/* Line 1455 of yacc.c  */
#line 14071 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= REPL_SLAVE_ACL; }
    break;

  case 2440:

/* Line 1455 of yacc.c  */
#line 14072 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= REPL_CLIENT_ACL; }
    break;

  case 2441:

/* Line 1455 of yacc.c  */
#line 14073 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= CREATE_VIEW_ACL; }
    break;

  case 2442:

/* Line 1455 of yacc.c  */
#line 14074 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= SHOW_VIEW_ACL; }
    break;

  case 2443:

/* Line 1455 of yacc.c  */
#line 14075 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= CREATE_PROC_ACL; }
    break;

  case 2444:

/* Line 1455 of yacc.c  */
#line 14076 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= ALTER_PROC_ACL; }
    break;

  case 2445:

/* Line 1455 of yacc.c  */
#line 14077 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= CREATE_USER_ACL; }
    break;

  case 2446:

/* Line 1455 of yacc.c  */
#line 14078 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= EVENT_ACL;}
    break;

  case 2447:

/* Line 1455 of yacc.c  */
#line 14079 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= TRIGGER_ACL; }
    break;

  case 2448:

/* Line 1455 of yacc.c  */
#line 14080 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= CREATE_TABLESPACE_ACL; }
    break;

  case 2449:

/* Line 1455 of yacc.c  */
#line 14084 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2450:

/* Line 1455 of yacc.c  */
#line 14085 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2453:

/* Line 1455 of yacc.c  */
#line 14095 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_subject)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
              MYSQL_YYABORT;
            }
            lex->x509_subject=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2454:

/* Line 1455 of yacc.c  */
#line 14105 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_issuer)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
              MYSQL_YYABORT;
            }
            lex->x509_issuer=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2455:

/* Line 1455 of yacc.c  */
#line 14115 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->ssl_cipher)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
              MYSQL_YYABORT;
            }
            lex->ssl_cipher=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2456:

/* Line 1455 of yacc.c  */
#line 14128 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            size_t dummy;
            if (lex->copy_db_to(&lex->current_select->db, &dummy))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2457:

/* Line 1455 of yacc.c  */
#line 14143 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = (yyvsp[(1) - (3)].lex_str).str;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2458:

/* Line 1455 of yacc.c  */
#line 14156 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = NULL;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2459:

/* Line 1455 of yacc.c  */
#line 14169 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(1) - (1)].table),NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant =  TABLE_ACLS & ~GRANT_ACL;
          }
    break;

  case 2460:

/* Line 1455 of yacc.c  */
#line 14181 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2461:

/* Line 1455 of yacc.c  */
#line 14186 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2462:

/* Line 1455 of yacc.c  */
#line 14194 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2463:

/* Line 1455 of yacc.c  */
#line 14199 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2468:

/* Line 1455 of yacc.c  */
#line 14210 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.lex_user)=(yyvsp[(1) - (4)].lex_user); (yyvsp[(1) - (4)].lex_user)->password=(yyvsp[(4) - (4)].lex_str);
            if ((yyvsp[(4) - (4)].lex_str).length)
            {
              if (thd->variables.old_passwords)
              {
                char *buff= 
                  (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
                if (buff == NULL)
                  MYSQL_YYABORT;
                my_make_scrambled_password_323(buff, (yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
              }
              else
              {
                char *buff= 
                  (char *) thd->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
                if (buff == NULL)
                  MYSQL_YYABORT;
                my_make_scrambled_password(buff, (yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH;
              }
            }
          }
    break;

  case 2469:

/* Line 1455 of yacc.c  */
#line 14237 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            (yyval.lex_user)= (yyvsp[(1) - (5)].lex_user); 
            (yyvsp[(1) - (5)].lex_user)->password= (yyvsp[(5) - (5)].lex_str); 
          }
    break;

  case 2470:

/* Line 1455 of yacc.c  */
#line 14242 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.lex_user)= (yyvsp[(1) - (4)].lex_user);
            (yyvsp[(1) - (4)].lex_user)->plugin= (yyvsp[(4) - (4)].lex_str);
            (yyvsp[(1) - (4)].lex_user)->auth= empty_lex_str;
          }
    break;

  case 2471:

/* Line 1455 of yacc.c  */
#line 14248 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.lex_user)= (yyvsp[(1) - (6)].lex_user);
            (yyvsp[(1) - (6)].lex_user)->plugin= (yyvsp[(4) - (6)].lex_str);
            (yyvsp[(1) - (6)].lex_user)->auth= (yyvsp[(6) - (6)].lex_str);
          }
    break;

  case 2472:

/* Line 1455 of yacc.c  */
#line 14254 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (1)].lex_user); (yyvsp[(1) - (1)].lex_user)->password= null_lex_str; }
    break;

  case 2473:

/* Line 1455 of yacc.c  */
#line 14259 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->grant |= lex->which_columns;
          }
    break;

  case 2477:

/* Line 1455 of yacc.c  */
#line 14273 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            String *new_str = new (thd->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,(yyvsp[(1) - (1)].lex_str).length,system_charset_info);
            if (new_str == NULL)
              MYSQL_YYABORT;
            List_iterator <LEX_COLUMN> iter(Lex->columns);
            class LEX_COLUMN *point;
            LEX *lex=Lex;
            while ((point=iter++))
            {
              if (!my_strcasecmp(system_charset_info,
                                 point->column.c_ptr(), new_str->c_ptr()))
                break;
            }
            lex->grant_tot_col|= lex->which_columns;
            if (point)
              point->rights |= lex->which_columns;
            else
            {
              LEX_COLUMN *col= new LEX_COLUMN (*new_str,lex->which_columns);
              if (col == NULL)
                MYSQL_YYABORT;
              lex->columns.push_back(col);
            }
          }
    break;

  case 2479:

/* Line 1455 of yacc.c  */
#line 14302 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_SPECIFIED;
          }
    break;

  case 2480:

/* Line 1455 of yacc.c  */
#line 14306 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_ANY;
          }
    break;

  case 2481:

/* Line 1455 of yacc.c  */
#line 14310 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_X509;
          }
    break;

  case 2482:

/* Line 1455 of yacc.c  */
#line 14314 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_NONE;
          }
    break;

  case 2483:

/* Line 1455 of yacc.c  */
#line 14320 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2485:

/* Line 1455 of yacc.c  */
#line 14325 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2486:

/* Line 1455 of yacc.c  */
#line 14326 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2487:

/* Line 1455 of yacc.c  */
#line 14330 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2488:

/* Line 1455 of yacc.c  */
#line 14331 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2489:

/* Line 1455 of yacc.c  */
#line 14335 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2490:

/* Line 1455 of yacc.c  */
#line 14337 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.questions=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
          }
    break;

  case 2491:

/* Line 1455 of yacc.c  */
#line 14343 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.updates=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
          }
    break;

  case 2492:

/* Line 1455 of yacc.c  */
#line 14349 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.conn_per_hour= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
          }
    break;

  case 2493:

/* Line 1455 of yacc.c  */
#line 14355 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.user_conn= (yyvsp[(2) - (2)].num);
            lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
          }
    break;

  case 2494:

/* Line 1455 of yacc.c  */
#line 14364 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_BEGIN;
            lex->start_transaction_opt= 0;
          }
    break;

  case 2495:

/* Line 1455 of yacc.c  */
#line 14369 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2496:

/* Line 1455 of yacc.c  */
#line 14373 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2497:

/* Line 1455 of yacc.c  */
#line 14374 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2498:

/* Line 1455 of yacc.c  */
#line 14379 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_yes_no_unk)= TVL_UNKNOWN; }
    break;

  case 2499:

/* Line 1455 of yacc.c  */
#line 14380 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_yes_no_unk)= TVL_NO; }
    break;

  case 2500:

/* Line 1455 of yacc.c  */
#line 14381 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_yes_no_unk)= TVL_YES; }
    break;

  case 2501:

/* Line 1455 of yacc.c  */
#line 14386 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_yes_no_unk)= TVL_UNKNOWN; }
    break;

  case 2502:

/* Line 1455 of yacc.c  */
#line 14387 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_yes_no_unk)= TVL_YES; }
    break;

  case 2503:

/* Line 1455 of yacc.c  */
#line 14388 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.m_yes_no_unk)= TVL_NO; }
    break;

  case 2504:

/* Line 1455 of yacc.c  */
#line 14392 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2505:

/* Line 1455 of yacc.c  */
#line 14393 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2506:

/* Line 1455 of yacc.c  */
#line 14398 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_COMMIT;
            /* Don't allow AND CHAIN RELEASE. */
            MYSQL_YYABORT_UNLESS((yyvsp[(3) - (4)].m_yes_no_unk) != TVL_YES || (yyvsp[(4) - (4)].m_yes_no_unk) != TVL_YES);
            lex->tx_chain= (yyvsp[(3) - (4)].m_yes_no_unk);
            lex->tx_release= (yyvsp[(4) - (4)].m_yes_no_unk);
          }
    break;

  case 2507:

/* Line 1455 of yacc.c  */
#line 14410 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK;
            /* Don't allow AND CHAIN RELEASE. */
            MYSQL_YYABORT_UNLESS((yyvsp[(3) - (4)].m_yes_no_unk) != TVL_YES || (yyvsp[(4) - (4)].m_yes_no_unk) != TVL_YES);
            lex->tx_chain= (yyvsp[(3) - (4)].m_yes_no_unk);
            lex->tx_release= (yyvsp[(4) - (4)].m_yes_no_unk);
          }
    break;

  case 2508:

/* Line 1455 of yacc.c  */
#line 14420 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2509:

/* Line 1455 of yacc.c  */
#line 14429 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SAVEPOINT;
            lex->ident= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 2510:

/* Line 1455 of yacc.c  */
#line 14438 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
            lex->ident= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2511:

/* Line 1455 of yacc.c  */
#line 14451 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2513:

/* Line 1455 of yacc.c  */
#line 14457 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_select_to_union_list(Lex, (bool)(yyvsp[(2) - (2)].num), TRUE))
              MYSQL_YYABORT;
          }
    break;

  case 2514:

/* Line 1455 of yacc.c  */
#line 14462 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              Remove from the name resolution context stack the context of the
              last select in the union.
            */
            Lex->pop_context();
          }
    break;

  case 2515:

/* Line 1455 of yacc.c  */
#line 14472 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 2516:

/* Line 1455 of yacc.c  */
#line 14473 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2517:

/* Line 1455 of yacc.c  */
#line 14474 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2518:

/* Line 1455 of yacc.c  */
#line 14478 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.is_not_empty)= false; }
    break;

  case 2519:

/* Line 1455 of yacc.c  */
#line 14479 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.is_not_empty)= true; }
    break;

  case 2520:

/* Line 1455 of yacc.c  */
#line 14483 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel->master_unit();
            SELECT_LEX *fake= unit->fake_select_lex;
            if (fake)
            {
              unit->global_parameters= fake;
              fake->no_table_names_allowed= 1;
              lex->current_select= fake;
            }
            thd->where= "global ORDER clause";
          }
    break;

  case 2521:

/* Line 1455 of yacc.c  */
#line 14498 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            thd->lex->current_select->no_table_names_allowed= 0;
            thd->where= "";
          }
    break;

  case 2524:

/* Line 1455 of yacc.c  */
#line 14510 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2525:

/* Line 1455 of yacc.c  */
#line 14511 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2526:

/* Line 1455 of yacc.c  */
#line 14512 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2527:

/* Line 1455 of yacc.c  */
#line 14517 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
          }
    break;

  case 2528:

/* Line 1455 of yacc.c  */
#line 14521 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
          }
    break;

  case 2530:

/* Line 1455 of yacc.c  */
#line 14530 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (add_select_to_union_list(Lex, (bool)(yyvsp[(3) - (3)].num), FALSE))
              MYSQL_YYABORT;
          }
    break;

  case 2531:

/* Line 1455 of yacc.c  */
#line 14536 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->pop_context();
            (yyval.select_lex)= (yyvsp[(1) - (6)].select_lex);
          }
    break;

  case 2532:

/* Line 1455 of yacc.c  */
#line 14545 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { 
            (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
          }
    break;

  case 2533:

/* Line 1455 of yacc.c  */
#line 14551 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->expr_allows_subselect ||
               lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* 
              we are making a "derived table" for the parenthesis
              as we need to have a lex level to fit the union 
              after the parenthesis, e.g. 
              (SELECT .. ) UNION ...  becomes 
              SELECT * FROM ((SELECT ...) UNION ...)
            */
            if (mysql_new_select(Lex, 1))
              MYSQL_YYABORT;
          }
    break;

  case 2534:

/* Line 1455 of yacc.c  */
#line 14572 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->pop_context();
            SELECT_LEX *child= lex->current_select;
            lex->current_select = lex->current_select->return_after_parsing();
            lex->nest_level--;
            lex->current_select->n_child_sum_items += child->n_sum_items;
            /*
              A subselect can add fields to an outer select. Reserve space for
              them.
            */
            lex->current_select->select_n_where_fields+=
            child->select_n_where_fields;
          }
    break;

  case 2539:

/* Line 1455 of yacc.c  */
#line 14600 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->options|= SELECT_STRAIGHT_JOIN; }
    break;

  case 2540:

/* Line 1455 of yacc.c  */
#line 14602 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            YYPS->m_lock_type= TL_READ_HIGH_PRIORITY;
            YYPS->m_mdl_type= MDL_SHARED_READ;
            Select->options|= SELECT_HIGH_PRIORITY;
          }
    break;

  case 2541:

/* Line 1455 of yacc.c  */
#line 14609 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->options|= SELECT_DISTINCT; }
    break;

  case 2542:

/* Line 1455 of yacc.c  */
#line 14610 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->options|= SELECT_SMALL_RESULT; }
    break;

  case 2543:

/* Line 1455 of yacc.c  */
#line 14611 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->options|= SELECT_BIG_RESULT; }
    break;

  case 2544:

/* Line 1455 of yacc.c  */
#line 14613 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_BUFFER_RESULT;
          }
    break;

  case 2545:

/* Line 1455 of yacc.c  */
#line 14619 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_FOUND_ROWS;
          }
    break;

  case 2546:

/* Line 1455 of yacc.c  */
#line 14624 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Select->options|= SELECT_ALL; }
    break;

  case 2547:

/* Line 1455 of yacc.c  */
#line 14635 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2548:

/* Line 1455 of yacc.c  */
#line 14637 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2549:

/* Line 1455 of yacc.c  */
#line 14639 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2563:

/* Line 1455 of yacc.c  */
#line 14672 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            /*
              We have to distinguish missing DEFINER-clause from case when
              CURRENT_USER specified as definer explicitly in order to properly
              handle CREATE TRIGGER statements which come to replication thread
              from older master servers (i.e. to create non-suid trigger in this
              case).
            */
            thd->lex->definer= 0;
          }
    break;

  case 2564:

/* Line 1455 of yacc.c  */
#line 14686 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            thd->lex->definer= get_current_user(thd, (yyvsp[(3) - (3)].lex_user));
          }
    break;

  case 2565:

/* Line 1455 of yacc.c  */
#line 14699 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2566:

/* Line 1455 of yacc.c  */
#line 14701 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2567:

/* Line 1455 of yacc.c  */
#line 14703 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2568:

/* Line 1455 of yacc.c  */
#line 14708 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
    break;

  case 2569:

/* Line 1455 of yacc.c  */
#line 14713 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; }
    break;

  case 2570:

/* Line 1455 of yacc.c  */
#line 14715 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
    break;

  case 2571:

/* Line 1455 of yacc.c  */
#line 14717 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
    break;

  case 2572:

/* Line 1455 of yacc.c  */
#line 14722 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
    break;

  case 2573:

/* Line 1455 of yacc.c  */
#line 14724 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFINER; }
    break;

  case 2574:

/* Line 1455 of yacc.c  */
#line 14726 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_INVOKER; }
    break;

  case 2575:

/* Line 1455 of yacc.c  */
#line 14731 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_VIEW;
            /* first table in list is target VIEW name */
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (3)].table), NULL,
                                                   TL_OPTION_UPDATING,
                                                   TL_IGNORE,
                                                   MDL_EXCLUSIVE))
              MYSQL_YYABORT;
            lex->query_tables->open_strategy= TABLE_LIST::OPEN_STUB;
          }
    break;

  case 2577:

/* Line 1455 of yacc.c  */
#line 14747 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2579:

/* Line 1455 of yacc.c  */
#line 14753 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(1) - (1)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2580:

/* Line 1455 of yacc.c  */
#line 14758 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2581:

/* Line 1455 of yacc.c  */
#line 14765 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->parsing_options.allows_variable= FALSE;
            lex->parsing_options.allows_select_into= FALSE;
            lex->parsing_options.allows_select_procedure= FALSE;
            lex->parsing_options.allows_derived= FALSE;
            lex->create_view_select.str= (char *) YYLIP->get_cpp_ptr();
          }
    break;

  case 2582:

/* Line 1455 of yacc.c  */
#line 14774 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str;
            void *create_view_select= thd->memdup(lex->create_view_select.str, len);
            lex->create_view_select.length= len;
            lex->create_view_select.str= (char *) create_view_select;
            trim_whitespace(thd->charset(), &lex->create_view_select);
            lex->parsing_options.allows_variable= TRUE;
            lex->parsing_options.allows_select_into= TRUE;
            lex->parsing_options.allows_select_procedure= TRUE;
            lex->parsing_options.allows_derived= TRUE;
          }
    break;

  case 2585:

/* Line 1455 of yacc.c  */
#line 14795 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_NONE; }
    break;

  case 2586:

/* Line 1455 of yacc.c  */
#line 14797 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2587:

/* Line 1455 of yacc.c  */
#line 14799 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2588:

/* Line 1455 of yacc.c  */
#line 14801 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_LOCAL; }
    break;

  case 2589:

/* Line 1455 of yacc.c  */
#line 14818 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $8 */
            Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start();
          }
    break;

  case 2590:

/* Line 1455 of yacc.c  */
#line 14824 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $12 */
            Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start();
          }
    break;

  case 2591:

/* Line 1455 of yacc.c  */
#line 14829 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $15 */
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
              MYSQL_YYABORT;
            }

            if (!(sp= new sp_head()))
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_TRIGGER;
            sp->init_sp_name(thd, (yyvsp[(3) - (14)].spname));
            lex->stmt_definition_begin= (yyvsp[(2) - (14)].simple_string);
            lex->ident.str= (yyvsp[(7) - (14)].simple_string);
            lex->ident.length= (yyvsp[(11) - (14)].simple_string) - (yyvsp[(7) - (14)].simple_string);

            lex->sphead= sp;
            lex->spname= (yyvsp[(3) - (14)].spname);

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 2592:

/* Line 1455 of yacc.c  */
#line 14858 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $17 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->sql_command= SQLCOM_CREATE_TRIGGER;
            sp->set_stmt_end(thd);
            sp->restore_thd_mem_root(thd);

            if (sp->is_not_allowed_in_function("trigger"))
              MYSQL_YYABORT;

            /*
              We have to do it after parsing trigger body, because some of
              sp_proc_stmt alternatives are not saving/restoring LEX, so
              lex->query_tables can be wiped out.
            */
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(9) - (16)].table),
                                                   (LEX_STRING*) 0,
                                                   TL_OPTION_UPDATING,
                                                   TL_READ_NO_INSERT,
                                                   MDL_SHARED_NO_WRITE))
              MYSQL_YYABORT;
          }
    break;

  case 2593:

/* Line 1455 of yacc.c  */
#line 14892 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            if (is_native_function(thd, & (yyvsp[(4) - (8)].lex_str)))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       (yyvsp[(4) - (8)].lex_str).str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.type= UDFTYPE_AGGREGATE;
            lex->stmt_definition_begin= (yyvsp[(2) - (8)].simple_string);
            lex->udf.name = (yyvsp[(4) - (8)].lex_str);
            lex->udf.returns=(Item_result) (yyvsp[(6) - (8)].num);
            lex->udf.dl=(yyvsp[(8) - (8)].lex_str).str;
          }
    break;

  case 2594:

/* Line 1455 of yacc.c  */
#line 14909 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            if (is_native_function(thd, & (yyvsp[(3) - (7)].lex_str)))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       (yyvsp[(3) - (7)].lex_str).str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.type= UDFTYPE_FUNCTION;
            lex->stmt_definition_begin= (yyvsp[(1) - (7)].simple_string);
            lex->udf.name = (yyvsp[(3) - (7)].lex_str);
            lex->udf.returns=(Item_result) (yyvsp[(5) - (7)].num);
            lex->udf.dl=(yyvsp[(7) - (7)].lex_str).str;
          }
    break;

  case 2595:

/* Line 1455 of yacc.c  */
#line 14931 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $5 */
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;
            sp_head *sp;
            const char* tmp_param_begin;

            lex->stmt_definition_begin= (yyvsp[(1) - (4)].simple_string);
            lex->spname= (yyvsp[(3) - (4)].spname);

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            /* Order is important here: new - reset - init */
            sp= new sp_head();
            if (sp == NULL)
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->init_sp_name(thd, lex->spname);

            sp->m_type= TYPE_ENUM_FUNCTION;
            lex->sphead= sp;

            tmp_param_begin= lip->get_cpp_tok_start();
            tmp_param_begin++;
            lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2596:

/* Line 1455 of yacc.c  */
#line 14962 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $8 */
            Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
          }
    break;

  case 2597:

/* Line 1455 of yacc.c  */
#line 14966 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $10 */
            LEX *lex= Lex;
            lex->charset= NULL;
            lex->length= lex->dec= NULL;
            lex->interval_list.empty();
            lex->type= 0;
            lex->vcol_info= 0;
          }
    break;

  case 2598:

/* Line 1455 of yacc.c  */
#line 14975 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $12 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            /*
              This was disabled in 5.1.12. See bug #20701
              When collation support in SP is implemented, then this test
              should be removed.
            */
            if (((yyvsp[(11) - (11)].num) == MYSQL_TYPE_STRING || (yyvsp[(11) - (11)].num) == MYSQL_TYPE_VARCHAR)
                && (lex->type & BINCMP_FLAG))
            {
              my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation");
              MYSQL_YYABORT;
            }

            if (sp->fill_field_definition(thd, lex,
                                          (enum enum_field_types) (yyvsp[(11) - (11)].num),
                                          &sp->m_return_field_def))
              MYSQL_YYABORT;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2599:

/* Line 1455 of yacc.c  */
#line 14998 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { /* $14 */
            LEX *lex= thd->lex;
            Lex_input_stream *lip= YYLIP;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
          }
    break;

  case 2600:

/* Line 1455 of yacc.c  */
#line 15006 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;
            sp_head *sp= lex->sphead;

            if (sp->is_not_allowed_in_function("function"))
              MYSQL_YYABORT;

            lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
            sp->set_stmt_end(thd);
            if (!(sp->m_flags & sp_head::HAS_RETURN))
            {
              my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str);
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & sp->m_name))
            {
              /*
                This warning will be printed when
                [1] A client query is parsed,
                [2] A stored function is loaded by db_load_routine.
                Printing the warning for [2] is intentional, to cover the
                following scenario:
                - A user define a SF 'foo' using MySQL 5.N
                - An application uses select foo(), and works.
                - MySQL 5.{N+1} defines a new native function 'foo', as
                part of a new feature.
                - MySQL 5.{N+1} documentation is updated, and should mention
                that there is a potential incompatible change in case of
                existing stored function named 'foo'.
                - The user deploys 5.{N+1}. At this point, 'select foo()'
                means something different, and the user code is most likely
                broken (it's only safe if the code is 'select db.foo()').
                With a warning printed when the SF is loaded (which has to occur
                before the call), the warning will provide a hint explaining
                the root cause of a later failure of 'select foo()'.
                With no warning printed, the user code will fail with no
                apparent reason.
                Printing a warning each time db_load_routine is executed for
                an ambiguous function is annoying, since that can happen a lot,
                but in practice should not happen unless there *are* name
                collisions.
                If a collision exists, it should not be silenced but fixed.
              */
              push_warning_printf(thd,
                                  MYSQL_ERROR::WARN_LEVEL_NOTE,
                                  ER_NATIVE_FCT_NAME_COLLISION,
                                  ER(ER_NATIVE_FCT_NAME_COLLISION),
                                  sp->m_name.str);
            }
            sp->restore_thd_mem_root(thd);
          }
    break;

  case 2601:

/* Line 1455 of yacc.c  */
#line 15061 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            lex->stmt_definition_begin= (yyvsp[(2) - (3)].simple_string);

            /* Order is important here: new - reset - init */
            sp= new sp_head();
            if (sp == NULL)
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_PROCEDURE;
            sp->init_sp_name(thd, (yyvsp[(3) - (3)].spname));

            lex->sphead= sp;
          }
    break;

  case 2602:

/* Line 1455 of yacc.c  */
#line 15085 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            const char* tmp_param_begin;

            tmp_param_begin= YYLIP->get_cpp_tok_start();
            tmp_param_begin++;
            Lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2603:

/* Line 1455 of yacc.c  */
#line 15094 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;

            lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2604:

/* Line 1455 of yacc.c  */
#line 15101 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= thd->lex;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, YYLIP->get_cpp_tok_start());
          }
    break;

  case 2605:

/* Line 1455 of yacc.c  */
#line 15108 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            sp->set_stmt_end(thd);
            lex->sql_command= SQLCOM_CREATE_PROCEDURE;
            sp->restore_thd_mem_root(thd);
          }
    break;

  case 2606:

/* Line 1455 of yacc.c  */
#line 15122 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_START;
          }
    break;

  case 2607:

/* Line 1455 of yacc.c  */
#line 15126 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_END;
          }
    break;

  case 2608:

/* Line 1455 of yacc.c  */
#line 15130 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_PREPARE;
          }
    break;

  case 2609:

/* Line 1455 of yacc.c  */
#line 15134 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_COMMIT;
          }
    break;

  case 2610:

/* Line 1455 of yacc.c  */
#line 15138 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_ROLLBACK;
          }
    break;

  case 2611:

/* Line 1455 of yacc.c  */
#line 15142 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_RECOVER;
          }
    break;

  case 2612:

/* Line 1455 of yacc.c  */
#line 15149 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (1)].string)->length() <= MAXGTRIDSIZE);
            if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (1)].string)->ptr(), (yyvsp[(1) - (1)].string)->length(), 0, 0);
          }
    break;

  case 2613:

/* Line 1455 of yacc.c  */
#line 15156 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (3)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (3)].string)->ptr(), (yyvsp[(1) - (3)].string)->length(), (yyvsp[(3) - (3)].string)->ptr(), (yyvsp[(3) - (3)].string)->length());
          }
    break;

  case 2614:

/* Line 1455 of yacc.c  */
#line 15163 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (5)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set((yyvsp[(5) - (5)].ulong_num), (yyvsp[(1) - (5)].string)->ptr(), (yyvsp[(1) - (5)].string)->length(), (yyvsp[(3) - (5)].string)->ptr(), (yyvsp[(3) - (5)].string)->length());
          }
    break;

  case 2615:

/* Line 1455 of yacc.c  */
#line 15172 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2616:

/* Line 1455 of yacc.c  */
#line 15173 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2617:

/* Line 1455 of yacc.c  */
#line 15177 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2618:

/* Line 1455 of yacc.c  */
#line 15178 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_JOIN;        }
    break;

  case 2619:

/* Line 1455 of yacc.c  */
#line 15179 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_RESUME;      }
    break;

  case 2620:

/* Line 1455 of yacc.c  */
#line 15183 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2621:

/* Line 1455 of yacc.c  */
#line 15184 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_ONE_PHASE;   }
    break;

  case 2622:

/* Line 1455 of yacc.c  */
#line 15189 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2623:

/* Line 1455 of yacc.c  */
#line 15191 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_SUSPEND;     }
    break;

  case 2625:

/* Line 1455 of yacc.c  */
#line 15196 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {}
    break;

  case 2626:

/* Line 1455 of yacc.c  */
#line 15197 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    { Lex->xa_opt=XA_FOR_MIGRATE; }
    break;

  case 2627:

/* Line 1455 of yacc.c  */
#line 15202 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (5)].lex_str);
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2628:

/* Line 1455 of yacc.c  */
#line 15209 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSTALL_PLUGIN;
            lex->comment= null_lex_str;
            lex->ident= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2629:

/* Line 1455 of yacc.c  */
#line 15219 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2630:

/* Line 1455 of yacc.c  */
#line 15225 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
            lex->comment= null_lex_str;
            lex->ident= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2631:

/* Line 1455 of yacc.c  */
#line 15236 "/home/buildbot/buildbot/build/sql/sql_yacc.yy"
    {
	  YYERROR;
	}
    break;



/* Line 1455 of yacc.c  */
#line 40681 "/home/buildbot/buildbot/build/mkdist/sql/sql_yacc.cc"
      default: break;
    }
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;

  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (thd, YY_("syntax error"));
#else
      {
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
	  {
	    YYSIZE_T yyalloc = 2 * yysize;
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
	    if (yymsg != yymsgbuf)
	      YYSTACK_FREE (yymsg);
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
	    if (yymsg)
	      yymsg_alloc = yyalloc;
	    else
	      {
		yymsg = yymsgbuf;
		yymsg_alloc = sizeof yymsgbuf;
	      }
	  }

	if (0 < yysize && yysize <= yymsg_alloc)
	  {
	    (void) yysyntax_error (yymsg, yystate, yychar);
	    yyerror (thd, yymsg);
	  }
	else
	  {
	    yyerror (thd, YY_("syntax error"));
	    if (yysize != 0)
	      goto yyexhaustedlab;
	  }
      }
#endif
    }



  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse lookahead token after an
	 error, discard it.  */

      if (yychar <= YYEOF)
	{
	  /* Return failure if at end of input.  */
	  if (yychar == YYEOF)
	    YYABORT;
	}
      else
	{
	  yydestruct ("Error: discarding",
		      yytoken, &yylval, thd);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse lookahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  /* Do not reclaim the symbols of the rule which action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;


      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp, thd);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  *++yyvsp = yylval;


  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#if !defined(yyoverflow) || YYERROR_VERBOSE
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (thd, YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
		 yytoken, &yylval, thd);
  /* Do not reclaim the symbols of the rule which action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
		  yystos[*yyssp], yyvsp, thd);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  /* Make sure YYID is used.  */
  return YYID (yyresult);
}



